我正在与Snap.Py合作。 我试图通过使用PyPy来提高效率,但是我无法导入Snap.Py包。
这是我到目前为止所做的:
使用pip install snap
pypy setup.py install
我看到snap.py文件是从pypy / site-packages加载的。 但它无法加载_sanp包。
回溯(最近一次调用最后一次):文件“app_main.py”,第75行,中 run_toplevel文件“main.py”,第4行,in import snap文件“/usr/.../Documents/pypy/pypy/site-packages/snap.py”,第32行,in _snap = swig_import_helper()
文件“/usr/../Documents/pypy/pypy/site-packages/snap.py”,第24行,in swig_import_helperimport _snap ImportError: No module named _snap
我可以在lib-python下看到文件_snap.so,但是因为某些原因它没有被pypy加载
从snap.py代码我可以看到导入是通过imp.find_module完成的。 我试图用sys.path.insert(0,'/ usr /.../ pypy / pypy / lib-python')更新sys路径 但它没有帮助。
我错过了什么?
答案 0 :(得分:0)
运行pypy无法创建名为_snap.so
的文件;它必须是通过运行CPython错误地创建的。如果它是用pypy创建的,那么它将被称为_snap.pypy-23.so
。要在snap包的源代码中运行的行pypy setup.py install
是您所需要的。如果它没有正确创建并安装_snap.pypy-23.so
,您需要仔细审核其输出内容以及原因......
正如IfLoop所提到的,这将在PyPy上运行CPython C扩展模块,通常"#34;工作(并不总是),但比CPython慢。如果你在CPython上遇到性能问题,并且无论如何大部分时间花在这个C扩展模块上,切换到PyPy根本没有帮助。只有这个_snap模块完全不是性能关键部分才有用。
答案 1 :(得分:0)
You are probably using python 32 bit version which does not work with snap as it quoted here : Snapy Download page
(Windows 32-bit packages or Python 32-bit will not work). Python 2.7.x can be downloaded from the Python Download page. Make sure that you are using 64-bit Python 2.7.x packages.
To solve the issue, try installing a 64 bit version from here: Link to download python 2.7 64bit
somehow similar problem is asked in this link