Python 在PyPy中导入Snap.py
我和你一起工作。 我试图通过使用PyPy来提高效率,但未能导入Snap.Py包 这就是我到目前为止所做的:Python 在PyPy中导入Snap.py,python,pypy,Python,Pypy,我和你一起工作。 我试图通过使用PyPy来提高效率,但未能导入Snap.Py包 这就是我到目前为止所做的: 使用pip安装卡 pypy setup.py安装 我看到snap.py文件是从pypy/site包加载的。 但它无法加载_sanp包 回溯(最近一次调用last):文件“app_main.py”,第75行,在 运行顶层文件“main.py”,第4行,在 导入快照文件“/usr/../Documents/pypy/pypy/site packages/snap.py”,第32行,在 _sna
文件“/usr/。/Documents/pypy/pypy/site packages/snap.py”,第24行,在 swig\u导入\u帮助程序
import _snap ImportError: No module named _snap
我可以在lib python下看到文件_snap.so,但由于某些原因,它不是由pypy加载的
从snap.py代码中,我可以看到导入是通过imp.find_模块完成的。
我试图用sys.path.insert(0,'/usr/../pypypy/pypy/lib-python')更新sys路径
但这没用
我缺少什么?名为
\u snap的文件。因此运行pypy无法创建;它一定是运行CPython时错误创建的。如果它是用pypy创建的,那么它将被称为类似于\u snap.pypy-23.so
。您需要在snap软件包的源代码中运行的行pypy setup.py install
。如果它没有正确地创建和安装一个\u snap.pypy-23。因此
您需要仔细检查它输出了什么以及为什么
正如IfLoop所提到的,这将是在PyPy上运行一个CPython C扩展模块,它“经常”工作(不总是),但比在CPython上慢。如果您在CPython上遇到性能问题,并且大部分时间都花在这个C扩展模块上,那么切换到PyPy将毫无帮助。只有当此snap模块完全不是性能关键部分时,它才会有所帮助。您可能使用的是python 32位版本,该版本不适用于snap,如下所述:
(Windows 32位软件包或Python 32位将不起作用)。Python2.7.x可以从Python下载页面下载确保您使用的是64位Python 2.7.x软件包
要解决此问题,请尝试从以下位置安装64位版本:
类似的问题如果您已经在使用c扩展,那么使用PyPy而不是CPython可能无法获得您希望的性能。请看更多关于答案的详细说明,这将有助于这篇老文章。