为什么 pypy 不能识别我的 python 2.7/3.4 模块和包?
Why pypy is not recognizing my python 2.7/3.4 modules and packages?
我正在 运行 使用 python script.py
或 python3 script.py
设置我的 python 代码。 (第一个基于2.7,第二个基于3.4)。但是,最近我正在编写一个在计算费用方面要求很高的代码。我不是 python 方面的专家,无法加速我的代码(它使用了很多其他例程,这些例程都与 python 2.7 和 3.4 的两个版本兼容)。当代码中我的函数的 .hdf5
输入文件大约为 1 Mbi 时,代码正在 运行ning 并生成结果,尽管速度很慢。但是当函数的 .hdf5
输入文件大约为 1 Gbi 时,代码几乎不会执行到最后,我最终得到 "MemoryError:"
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
在这个网站上做了一些搜索后,我注意到我可以 运行 python 代码使用 pypy 来加速它们。由于我使用的是 Fedora 21(32 位)OS,其存储库中带有 pypy 2.4 版本,因此我能够成功安装此版本的 pypy。但是,当我尝试使用命令行 pypy myscript.py
而不是上面提到的那些来 运行 我的代码时,我留下了错误消息:
File "app_main.py", line 75, in run_toplevel File "myscript.py",
line 1, in
import numpy as np ImportError: No module named numpy
pypy 似乎无法识别所有 python 模块和包,包括这个特定的模块和包。
考虑到我想坚持使用 Fedora 21 Linux 发行版,这样所有 python 模块和包都可以被 pypy 识别,从而使速度更快,因此您对我最好的建议是什么代码?
我可以 post myscript.py
是什么,但我不确定这是否有帮助,因为我在其中使用了很多其他例程。
PyPy 2.4 是一个相当过时的版本,不支持 numpy(即使您尝试单独安装它)。
无论如何,即使是全新版本的 PyPy 也不太可能减少 numpy-heavy 程序的内存使用量。
如果您在 32 位 OS 上的单个进程中以约 1-3GB 的数据规模遇到 MemoryError,那么我很清楚您需要 64 位OS.
我正在 运行 使用 python script.py
或 python3 script.py
设置我的 python 代码。 (第一个基于2.7,第二个基于3.4)。但是,最近我正在编写一个在计算费用方面要求很高的代码。我不是 python 方面的专家,无法加速我的代码(它使用了很多其他例程,这些例程都与 python 2.7 和 3.4 的两个版本兼容)。当代码中我的函数的 .hdf5
输入文件大约为 1 Mbi 时,代码正在 运行ning 并生成结果,尽管速度很慢。但是当函数的 .hdf5
输入文件大约为 1 Gbi 时,代码几乎不会执行到最后,我最终得到 "MemoryError:"
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
在这个网站上做了一些搜索后,我注意到我可以 运行 python 代码使用 pypy 来加速它们。由于我使用的是 Fedora 21(32 位)OS,其存储库中带有 pypy 2.4 版本,因此我能够成功安装此版本的 pypy。但是,当我尝试使用命令行 pypy myscript.py
而不是上面提到的那些来 运行 我的代码时,我留下了错误消息:
File "app_main.py", line 75, in run_toplevel File "myscript.py", line 1, in import numpy as np ImportError: No module named numpy
pypy 似乎无法识别所有 python 模块和包,包括这个特定的模块和包。
考虑到我想坚持使用 Fedora 21 Linux 发行版,这样所有 python 模块和包都可以被 pypy 识别,从而使速度更快,因此您对我最好的建议是什么代码?
我可以 post myscript.py
是什么,但我不确定这是否有帮助,因为我在其中使用了很多其他例程。
PyPy 2.4 是一个相当过时的版本,不支持 numpy(即使您尝试单独安装它)。
无论如何,即使是全新版本的 PyPy 也不太可能减少 numpy-heavy 程序的内存使用量。
如果您在 32 位 OS 上的单个进程中以约 1-3GB 的数据规模遇到 MemoryError,那么我很清楚您需要 64 位OS.