如何告诉ipcluster启动哪个python.exe

时间:2016-03-11 14:03:47

标签: python parallel-processing ipython

我在Windows 7上安装了python2,7_32bit“经典”。它集成在注册表中,所以当我双击一个.py文件时,它会被这个python执行...

但是很长一段时间以来,我使用python3,5_64bit的便携式Winpython安装(我推荐,顺便说一句)。

上周,我在DOS控制台中执行了这个命令:

"C:\\Program Files\\WinPython-64bit-3.5.1.1\\python-3.5.1.amd64\\scripts\\ipcluster" start -n 4 --profile-dir="cluster"

它按预期工作,并启动了4个python64bit_3,5进程。

现在,相同的ipcluster命令从“已安装”版本启动python32bit实例。 (我在Windows任务管理器中看到32位,我可以右键单击“打开位置文件”以确定该进程执行哪个python.exe)

当然,它会在Python 2和3之间产生兼容性问题(valueError不支持的pickle协议3)。

所以短期解决方案是卸载我的旧python,但我希望有一个很好的解决方案,因为这个程序应该在其他可能安装了不同Python的计算机上运行。

我想在“ipcluster_config.py”中写一些内容但我找不到“本地”引擎的任何示例或文档。 例如,这适用于SSH引擎:https://github.com/ipython/ipyparallel/pull/10

1 个答案:

答案 0 :(得分:0)

解决方案是从你需要的python.exe调用ipcluster:

这个命令:

WinPython-64bit-3.5.1.2\python-3.5.1.amd64\python.exe "WinPython-64bit-3.5.1.1\python-3.5.1.amd64\Scripts\ipcluster.exe" start -n 4

给了我来自python 3.5.1.2 ....(而不是3.5.1.1)

的进程

它实际上是它的工作方式,我猜...(现在很清楚为什么我得到了旧版本,但之前没有它如何工作)