Python 在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

我和你一起工作。 我试图通过使用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行,在 _snap=swig\u import\u helper()
    文件“/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可能无法获得您希望的性能。请看更多关于答案的详细说明,这将有助于这篇老文章。