Python 2.7 为什么pypy不能识别我的python 2.7/3.4模块和包?

Python 2.7 为什么pypy不能识别我的python 2.7/3.4模块和包?,python-2.7,memory,python-3.4,pypy,Python 2.7,Memory,Python 3.4,Pypy,我正在使用pythonscript.py或python3script.py运行python代码。(第一个基于2.7,第二个基于3.4)。然而,最近我正在编写一个在计算开销方面要求很高的代码。为了提高代码的速度,我不是python方面的专家(它使用了许多其他例程,所有这些例程都与python 2.7和3.4版本兼容)。当代码中my函数的.hdf5输入文件的大小约为1 Mbi时,代码正在运行并生成结果,尽管速度很慢。但是,当函数的.hdf5输入文件的大小约为1 Gbi时,代码几乎永远不会结束,我的结

我正在使用
pythonscript.py
python3script.py
运行python代码。(第一个基于2.7,第二个基于3.4)。然而,最近我正在编写一个在计算开销方面要求很高的代码。为了提高代码的速度,我不是python方面的专家(它使用了许多其他例程,所有这些例程都与python 2.7和3.4版本兼容)。当代码中my函数的
.hdf5
输入文件的大小约为1 Mbi时,代码正在运行并生成结果,尽管速度很慢。但是,当函数的
.hdf5
输入文件的大小约为1 Gbi时,代码几乎永远不会结束,我的结果是“MemoryError:”

回溯(最近一次呼叫最后一次):
文件“myscript.py”,第29行,在
gizmo.analysis.Image.plot\u Image(部分“气体”、“质量、氢中性”、“直方图”、[0,1]、[0,1,2]、距离\u max、距离\u bin\u宽度\u气体、距离\u bin\u编号、部分\u索引=部分索引、写入\u绘图=写入\u绘图、绘图目录=绘图目录、背景\u颜色=背景\u颜色、使用\u列\u单位=真)
文件“/home/username/Desktop/Projects/PaperMaterials/DM_Dominated_Objects/NewFolder2/covering_fracts/Simulations/gizmo/gizmo_analysis.py”,第817行,在绘图图像中
权重=零件[规格名称].prop(权重属性名称,零件索引)
文件“/home/username/Desktop/Projects/PaperMaterials/DM_Dominated_Objects/NewFolder2/covering_fracts/Simulations/gizmo/gizmo_io.py”,第145行,在prop
self.prop(属性_name.replace('质量','质量分数'),索引))
文件“/home/username/Desktop/Projects/PaperMaterials/DM_支配对象/NewFolder2/covering_分数/Simulations/gizmo/gizmo_io.py”,第157行,在prop
值=(1-self.prop('massfortion',index)[:,0]-
文件“/home/username/Desktop/Projects/PaperMaterials/DM_支配对象/NewFolder2/covering_分数/Simulations/gizmo/gizmo_io.py”,第65行,在prop
返回自我[属性名称][索引]
记忆者
在这个网站上做了一些搜索之后,我注意到我可以使用pypy运行python代码来加速它们在其存储库中附带pypy 2.4版本的操作系统中,我成功地安装了此版本的pypy。但是,当我尝试使用命令行
pypy myscript.py
而不是上面提到的命令行运行代码时,我收到了错误消息:

运行顶层文件“myscript.py”第75行的文件“app_main.py”, 第1行,在 将numpy作为np导入错误:没有名为numpy的模块

pypy似乎不能识别所有的python模块和包,包括这个特定的模块和包

鉴于我希望继续使用Fedora21Linux发行版,以便pypy能够识别所有python模块和包,从而生成更快的代码,您对我的最佳建议是什么


我可以发布myscript.py是什么,但我不确定这是否有帮助,因为我在其中使用了很多其他例程。

pypypy2.4是一个相当过时的版本,它不支持numpy(即使您尝试单独安装它)

在任何情况下,即使是PyPy的全新版本也不太可能减少numpy繁重程序的内存使用


如果在32位操作系统上,在单个进程中以~1-3GB的数据规模运行MemoryError,那么我很清楚,您需要一个64位操作系统。

短期内,我可以通过不读取.hdf5文件中的所有内容来修改代码(取决于函数最小输入数据)因此,32位操作系统能够管理内存,尽管速度较慢,但最终结果不会丢失精度。然而,从长远来看,我确实不得不转向64位操作系统,不再存在这个问题。我注意到我没有回答您提出的确切问题:您需要安装专门用于PyPy的每个软件包,就像为Python2.7安装一个包不会自动使其对Python3.4可用一样,使用“pypy-m ensurepip”然后使用“pypypy-m pip install NAME”来使用Python自己的打包系统,而不是您的发行版(因为后者很可能不包含太多pypy模块)。
Traceback (most recent call last):
  File "myscript.py", line 29, in <module>
    gizmo.analysis.Image.plot_image(part, 'gas', 'mass.hydrogen.neutral', 'histogram', [0,1],[0,1,2], distance_max, distance_bin_width_Gas, distance_bin_number, part_indices=part_indices, write_plot=write_plot, plot_directory=plot_directory, background_color=background_color, use_column_units=True)
  File "/home/username/Desktop/Projects/PaperMaterials/DM_Dominated_Objects/NewFolder2/covering_fractions/Simulations/gizmo/gizmo_analysis.py", line 817, in plot_image
    weights = part[spec_name].prop(weight_prop_name, part_indices)
  File "/home/username/Desktop/Projects/PaperMaterials/DM_Dominated_Objects/NewFolder2/covering_fractions/Simulations/gizmo/gizmo_io.py", line 145, in prop
    self.prop(property_name.replace('mass.', 'massfraction.'), indices))
  File "/home/username/Desktop/Projects/PaperMaterials/DM_Dominated_Objects/NewFolder2/covering_fractions/Simulations/gizmo/gizmo_io.py", line 157, in prop
    values = (1 - self.prop('massfraction', indices)[:, 0] -
  File "/home/username/Desktop/Projects/PaperMaterials/DM_Dominated_Objects/NewFolder2/covering_fractions/Simulations/gizmo/gizmo_io.py", line 65, in prop
    return self[property_name][indices]
MemoryError