Python 如何使用pypy导入bitarray?
我正在运行,将bitarray库的路径添加到Python 如何使用pypy导入bitarray?,python,importerror,python-import,pypy,bitarray,Python,Importerror,Python Import,Pypy,Bitarray,我正在运行,将bitarray库的路径添加到sys.path后,仍然无法导入模块: Python 2.7.3 (87aa9de10f9ca71da9ab4a3d53e0ba176b67d086, Feb 10 2014, 05:26:49) [PyPy 2.2.1 with GCC 4.7.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. And now for somethin
sys.path
后,仍然无法导入模块:
Python 2.7.3 (87aa9de10f9ca71da9ab4a3d53e0ba176b67d086, Feb 10 2014, 05:26:49)
[PyPy 2.2.1 with GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
And now for something completely different: ``every VM should come with neural
network trained to recognize microbenchmarks and randomly fluctuate them
+/-9000%''
>>>> import sys
>>>> sys.path.append('/usr/local/lib/python2.7/dist-packages/')
>>>> sys.path.append('/usr/local/lib/python2.7/dist-packages/bitarray/')
>>>> import bitarray
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/bitarray/__init__.py", line 11, in <module>
from bitarray._bitarray import _bitarray, bitdiff, bits2bytes, _sysinfo
ImportError: No module named bitarray._bitarray
更新
在为pypy创建virtualenv并按照Sunny的建议使用pip安装bitarray之后,我仍然收到了一个警告:
$ ls my-pypy-env/site-packages/bitarray
_bitarray.pypy-22.so __init__.py __init__.pyc test_bitarray.py test_bitarray.pyc
$ cd my-pypy-env/
~/my-pypy-env$ ./bin/activate
~/my-pypy-env$ pypy
Python 2.7.3 (87aa9de10f9ca71da9ab4a3d53e0ba176b67d086, Feb 10 2014, 05:26:49)
[PyPy 2.2.1 with GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
And now for something completely different: ``__xxx__ and __rxxx__ vs operation
slots: particle quantum superposition kind of fun''
>>>> import sys
>>>> sys.path.append('/home/sofia/my-pypy-env/site-packages/bitarray')
>>>> import bitarray
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named bitarray
$ls my pypy env/site packages/bitarray
_bitarray.pypy-22.so _init _.py _init _; pyc test bitarray.py test bitarray.pyc
$cd my pypy env/
~/my pypy env$。/bin/激活
~/my pypy env$pypy
Python 2.7.3(87AA9DE10F9CA71DA9AB4A3D53E0BA176B67D0862014年2月10日05:26:49)
linux2上的[PyPy 2.2.1和GCC 4.7.2]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
现在来看一些完全不同的东西:``` uuuuxxx`和`` uuuuurxxx` vs操作
狭缝:粒子量子叠加的乐趣“
>>>>导入系统
>>>>sys.path.append(“/home/sofia/my pypy env/site packages/bitarray”)
>>>>导入位数组
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为bitarray的模块
更新2
桑尼的解决方案是正确的。新问题是追加/site packages/bitarray
而不仅仅是
/site packages/
。我本来以为virtualenv会自动将其添加到路径中,但似乎没有 bitarray模块看起来像是一个CPython扩展,它直接写在C
中。
CPython扩展模块不直接在PyPy中工作,无需任何更改。您需要安装与PyPy兼容的模块版本,或者手动执行所需的更改
要安装pypy兼容版本,请使用以下命令:
# If pypy is installed globally
/path/to/pypy/pypy-2.1/bin/pip install bitarray
# If using virtualenv
source /path/to/virtualenv/env/bin/activate
pip install bitarray
以下是PyPy常见问题解答中有关此问题的几个链接:
有没有办法确保bitarray是用C写的?不是整个bitarray,而是子模块
bitarray.\u bitarray
。是的,它是:请参阅文件\u bitarray.so的.so
扩展名。请注意,在virtualenv中运行pip install bitarray
,如上面的链接所述,似乎可以正常工作。它成功地编译了C代码,您不需要使用sys.path进行黑客攻击。我发布了一个关于这方面的更新,我仍然收到了一个ImportError。执行此操作后,您必须在启动pypy之前执行源代码bin/activate
而不是/bin/activate
。
# If pypy is installed globally
/path/to/pypy/pypy-2.1/bin/pip install bitarray
# If using virtualenv
source /path/to/virtualenv/env/bin/activate
pip install bitarray