当我尝试导入一个加载32位库的简单ctype模块时,我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "simple_test.py", line 5, in <module>
_myLib = ctypes.CDLL(_path + _file)
File "/usr/lib/python2.7/ctypes/__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: ../../bin/mylib.so: wrong ELF class: ELFCLASS32
Python3.3也会出现这种情况。在
这里的问题是我不想把我的库重新编译为64位, 我有办法让它工作吗?在
谢谢, 克伦
还有(相对而言)新的MSL-LoadLib可以使用。在
这基本上是沙丘在他的例子中所描述的,但是它与Python32捆绑在一起,所以你不必处理这个问题。在
您根本无法将32位代码加载到64位应用程序中,反之亦然。您的选择是:
multiprocessing
以便允许64位解释器与32位解释器通信。在前两个选项有一个问题,即在基于debian的发行版上,不能使用包管理器同时安装32位解释器和64位解释器(参见eryksun的评论)。在
重新编译库几乎肯定是更容易的选择,而且绝对不会带来运行时开销。在
一个如何做数字(2)的例子。预先警告:如果您经常使用这些方法,或者使用大量的输入/输出,这将导致来回发送数据的高开销。在
在主.py在
代理.py在
^{pr2}$相关问题 更多 >
编程相关推荐