小编Luc*_*lli的帖子

python中动态模块的init函数是什么?

我得到了其他两个问题的相同错误: ImportError:动态模块没有定义init函数,但它确实Cython编译了C扩展:ImportError:动态模块没有定义init函数

但他们的解决方案并不平等,也不适合我.

我试图在我的python程序中调用我在c中编写的共享库的函数.

我像这样编译了我的共享库:

gcc -shared -Wl,-soname,playfaircrack.so -o playfaircrack.so -fPIC playfaircrack.c scoreText.o
Run Code Online (Sandbox Code Playgroud)

我创建了一个模块,在这个模块中我加载了这个lib:

cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
Run Code Online (Sandbox Code Playgroud)

但是当我运行代码时,我收到以下错误:

Traceback (most recent call last):
  File "playfair.py", line 2, in <module>
    import playfaircrack
ImportError: dynamic module does not define init function (initplayfaircrack)
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为如果我运行python解释器,并直接调用:

cracker = ctypes.cdll.LoadLibrary('./playfaircrack.so')
Run Code Online (Sandbox Code Playgroud)

我可以访问我的共享库的功能.

任何想法如何解决这个问题?谢谢.

c python dll ctype

6
推荐指数
1
解决办法
3066
查看次数

如何找到accessible_output lib使用的DLL的路径?

我是一名盲人程序员,我正在尝试开发一个应用程序来自动检索Winamp当前播放歌曲中的歌词,并以一种可访问的方式呈现给屏幕阅读器.我正在使用accessible_output,一个使得活动屏幕阅读器与用户交谈的过程更容易的lib.你可以在这里找到它:https: //pypi.python.org/pypi/accessible_output/0.7.5#id3 它需要屏幕阅读器中的DLL才能工作.在我的测试中,NVDA屏幕阅读器,它需要NVDA32controller.dll.当从命令行运行时,它运行良好,但在使用py2exe创建.exe文件后,它找不到dll,因此屏幕阅读器不再说话了...任何想法如何解决这个问题?我查看了lib的源代码,也许lib正在寻找的路径在从命令行执行时正常工作,但是当它是.exe文件时,它会改变......但我不知道为什么.也许我应该添加另一条路径,但它应该是什么路径?

python accessibility

5
推荐指数
1
解决办法
121
查看次数

标签 统计

python ×2

accessibility ×1

c ×1

ctype ×1

dll ×1