小编Jor*_*lva的帖子

多处理python没有并行运行

我一直在尝试使用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

6
推荐指数
1
解决办法
4936
查看次数

ubuntu中python的冲突版本

所以我的服务器上有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

更多信息 …

python ubuntu

5
推荐指数
2
解决办法
3493
查看次数