Python 2.7 Python:控制台中奇怪的多处理函数崩溃
我维护了一个实验性工具,仍然使用python 2.7,它使用了大量库,如Gdal、shapely、astropy、OpenCV2、scipy等。在系统发生更改之前,一切都很好,所以虚拟环境已经被重做,然后我遇到了多处理功能的问题 复制行为的最简化代码:Python 2.7 Python:控制台中奇怪的多处理函数崩溃,python-2.7,pycharm,multiprocessing,anaconda,virtualenv,Python 2.7,Pycharm,Multiprocessing,Anaconda,Virtualenv,我维护了一个实验性工具,仍然使用python 2.7,它使用了大量库,如Gdal、shapely、astropy、OpenCV2、scipy等。在系统发生更改之前,一切都很好,所以虚拟环境已经被重做,然后我遇到了多处理功能的问题 复制行为的最简化代码: import multiprocessing if __name__ == '__main__': cpus = multiprocessing.cpu_count() cpus = cpus - 1 pool = mul
import multiprocessing
if __name__ == '__main__':
cpus = multiprocessing.cpu_count()
cpus = cpus - 1
pool = multiprocessing.Pool(processes=cpus)
结果#1与:
import multiprocessing
if __name__ == '__main__':
cpus = multiprocessing.cpu_count()
cpus = cpus - 1
pool = multiprocessing.Pool(processes=cpus)
- Python:VirEnv 2.7版本
- 控制台:Pycharm PyDev控制台
文件“C:\Python27\Lib\multiprocessing\forking.py”,第380行,在main中 文件,路径\名称,etc=imp.find\ u模块(主\名称,目录)导入错误:没有名为input的模块 准备(准备\u数据)文件“C:\Python27\Lib\multiprocessing\forking.py”,第504行,在准备中 文件,路径\名称,etc=imp.find\ u模块(主\名称,目录)导入错误:没有名为input的模块 为什么要研究“C:\Python27\Lib\multiprocessing\”而不是VirEnv 2.7版本 结果#2带:
import multiprocessing
if __name__ == '__main__':
cpus = multiprocessing.cpu_count()
cpus = cpus - 1
pool = multiprocessing.Pool(processes=cpus)
- Python:Anaconda的VirEnv 2.7
- 控制台:Pycharm PyDev控制台
import multiprocessing
if __name__ == '__main__':
cpus = multiprocessing.cpu_count()
cpus = cpus - 1
pool = multiprocessing.Pool(processes=cpus)
- Python:VirEnv 2.7版本
- 控制台:Pycharm终端
import multiprocessing
if __name__ == '__main__':
cpus = multiprocessing.cpu_count()
cpus = cpus - 1
pool = multiprocessing.Pool(processes=cpus)
- Python:Anaconda的VirEnv 2.7
- 控制台:Pycharm终端
import multiprocessing
if __name__ == '__main__':
cpus = multiprocessing.cpu_count()
cpus = cpus - 1
pool = multiprocessing.Pool(processes=cpus)
- Python:Anaconda的VirEnv 2.7
- 控制台:水蟒码头
B:\WorkingSpace\_____\API\virEnv_Desktop_V2.7\Scripts\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2019.2\helpers\pydev\pydevconsole.py" --mode=client --port=_____
import sys; print('Python %s on %s' % (sys.version, sys.platform))
sys.path.extend(['B:\\WorkingSpace\\_____\\API', 'B:/WorkingSpace/_____/API'])
PyDev console: starting.
Python 2.7.16 (v2.7.16:413a49145e, Mar 4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
当我传递简化的代码来重现该行为时,路径“C:\Python27\Lib\multiprocessing\”中的forking.py中出现错误“importorror:No module named”
Sys.path是:
- 'C:\ProgramFiles\JetBrains\PyCharm社区版 2019.2\helpers\pydev'
- 'C:\Program Files\JetBrains\PyCharm社区版2019.2\helpers\third\u party\thriftpy'
- 'C:\Program Files\JetBrains\PyCharm社区版2019.2\helpers\pydev'
- 'C:\Windows\SYSTEM32\python27.zip'
- 'B:\WorkingSpace\\ uuuuuuuuuuuuuuuuu\API\virEnv\u Desktop\u V2.7\DLLs'
- 'B:\WorkingSpace\\ uuuuuuuuuuuuu\API\virEnv\u Desktop\u V2.7\lib'
- “B:\WorkingSpace\\uuuuuuuuuuuuuuuuuuuuuuuuAPI\virEnv\u Desktop\u V2.7\lib\plat win”
- 'B:\WorkingSpace\\uuuuuuuuuuuuuuuuuuuuuuuuuuuAPI\virEnv\u Desktop\u V2.7\lib\lib tk'
- “B:\WorkingSpace\\ uuuuuuuuuuuuuuuuuuuuuAPI\virEnv\u Desktop\u V2.7\Scripts”
- 'C:\Python27\Lib'
- 'C:\Python27\DLLs'
- 'C:\Python27\Lib\Lib-tk'
- 'B:\WorkingSpace\\ uuuuuuuuuuuuuuu\API\virEnv\u Desktop\u V2.7'
- 'B:\WorkingSpace\\ uuuuuuuuuuuu\API\virEnv\u Desktop\u V2.7\lib\site packages'
- “B:\WorkingSpace\\uuuuuuuuuuuuuuuuuu\API”
- 'B:/WorkingSpace/___;/API'
发生了什么事?更奇怪的是。。。如果我启动包含简化代码的test.py。很好!这似乎与“Pycharm的Python开发控制台”密切相关……请检查项目是否配置为使用虚拟环境,而不是全局环境interpreter@AvivBar-el项目解释器指向Anaconda的VirEnv 2.7构建或VirEnv 2.7。