我一直在尝试使用python中的多处理模块来实现计算成本高昂的任务的并行性.
我能够执行我的代码,但它并不是并行运行的.我一直在阅读多处理的手册页和foruns,以找出它为什么不工作,我还没有想出来.
我认为这个问题可能与执行我创建和导入的其他模块的某种锁有关.
这是我的代码:
main.py:
##import my modules
import prepare_data
import filter_part
import wrapper_part
import utils
from myClasses import ML_set
from myClasses import data_instance
n_proc = 5
def main():
if __name__ == '__main__':
##only main process should run this
data = prepare_data.import_data() ##read data from file
data = prepare_data.remove_and_correct_outliers(data)
data = prepare_data.normalize_data_range(data)
features = filter_part.filter_features(data)
start_t = time.time()
##parallelism will be used on this part
best_subset = wrapper_part.wrapper(n_proc, data, features)
print time.time() - start_t
main()
Run Code Online (Sandbox Code Playgroud)
wrapper_part.py:
##my modules
from myClasses …Run Code Online (Sandbox Code Playgroud) python parallel-processing multiprocessing python-multiprocessing
所以我的服务器上有python 2.7.2,我需要将它更新为python 2.7.3.所以我试图删除2.7.2版本,然后使用源安装新版本.我无法删除2.7.2版本因为系统使用它来运行服务器上的关键服务,所以我安装了2.7.3版本,希望之后我能够删除旧版本.仍然我不能删除旧版本,虽然我能够执行python 2.7.3当我安装任何模块我不能导入它.我添加了sys.path的路径,我开始找到模块,但导入它会导致另一个错误.
我的python执行/ usr/local/bin/python这是问题所在的2.7.3版本.如果我尝试像这样/ usr/bin/python执行python它执行旧版本,一切正常,我可以导入新安装的模块.
那么我该怎么做才能让python 2.7.3工作呢?
我搜索了很多教程,并尝试了在python上添加.pth文件中的库,我开始找到模块但是在导入时我得到这样的错误:
>>> import numpy
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/numpy/__init__.py", line 137, in <module>
import add_newdocs
File "/usr/local/lib/python2.7/dist-packages/numpy/add_newdocs.py", line 9, in <module>
from numpy.lib import add_newdoc
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/__init__.py", line 4, in <module>
from type_check import *
File "/usr/local/lib/python2.7/dist-packages/numpy/lib/type_check.py", line 8, in <module>
import numpy.core.numeric as _nx
File "/usr/local/lib/python2.7/dist-packages/numpy/core/__init__.py", line 5, in <module>
import multiarray
ImportError: /usr/local/lib/python2.7/dist-packages/numpy/core/multiarray.so: undefined symbol: PyUnicodeUCS4_AsUnicodeEscapeString
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助
解决了编辑问题
因此,为了解决缺少的导入模块,我在/usr/local/lib/python2.7/site-packages/下创建了一个.pth文件,其中包含python模块所在的目录,python开始找到它们.要解决可兼容性问题,可以从源代码安装python并指定unicode做./configure --enable-unicode
更多信息 …