Python 如何使用pypy导入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

我正在运行,将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 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