Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 Python:控制台中奇怪的多处理函数崩溃_Python 2.7_Pycharm_Multiprocessing_Anaconda_Virtualenv - Fatal编程技术网

Python 2.7 Python:控制台中奇怪的多处理函数崩溃

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

我维护了一个实验性工具,仍然使用python 2.7,它使用了大量库,如Gdal、shapely、astropy、OpenCV2、scipy等。在系统发生更改之前,一切都很好,所以虚拟环境已经被重做,然后我遇到了多处理功能的问题

复制行为的最简化代码:

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控制台
回溯(最近一次调用):文件“”,第1行,在 回溯(最近一次调用):文件“”,第1行, 在文件“C:\Python27\Lib\multiprocessing\forking.py”中,第行 总的来说是380 准备(准备\u数据)文件“C:\Python27\Lib\multiprocessing\forking.py”,第504行,在准备
文件“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控制台
回溯(最近一次调用):文件“”,第1行,在 文件 “C:\Users\\ uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu, 第105行,在spawn_main中 exitcode=_main(fd)文件“C:\Users\\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu\AppData\Local\conda\conda\envs\Python\u27\lib\multiprocessing\spawn.py”, 第114行,主管道 准备(准备数据)文件“C:\Users\\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu\AppData\Local\conda\conda\envs\Python\u27\lib\multiprocessing\, 第225行,准备就绪 _fixup\u main\u from\u path(数据['init\u main\u from\u path'])文件“C:\Users\\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu\AppData\Local\conda\conda\envs\Python\u 27\lib\multiprocessing\spawn, 第277行,从主路到主路 运行\u name=“mp\u main”)文件“C:\Users\ \uuuuuuuuuuuuuuuuuuuuuuuuu\AppData\Local\conda\conda\envs\Python\u 27\lib\runpy.py”, 第261行,运行路径中 代码,fname=\u从\u文件(运行\u名称,路径\u名称)中获取\u代码\u文件“C:\Users\\uuuuuuuuuuuuuu\AppData\Local\conda\conda\envs\Python\u 27\lib\runpy.py”, 第231行,从文件中获取代码 将open(fname,“rb”)作为f:OSError:[Errno 22]的无效参数:“B:\WorkingSpace\\uuuuuuuuuuuuuu\API”

结果#3与:

import multiprocessing
if __name__ == '__main__':
    cpus = multiprocessing.cpu_count()
    cpus = cpus - 1
    pool = multiprocessing.Pool(processes=cpus)
  • Python:VirEnv 2.7版本
  • 控制台:Pycharm终端
顺利通过

结果#4与:

import multiprocessing
if __name__ == '__main__':
    cpus = multiprocessing.cpu_count()
    cpus = cpus - 1
    pool = multiprocessing.Pool(processes=cpus)
  • Python:Anaconda的VirEnv 2.7
  • 控制台:Pycharm终端
顺利通过

结果#5与:

import multiprocessing
if __name__ == '__main__':
    cpus = multiprocessing.cpu_count()
    cpus = cpus - 1
    pool = multiprocessing.Pool(processes=cpus)
  • Python:Anaconda的VirEnv 2.7
  • 控制台:水蟒码头
顺利通过

那么,Pycharm PyDev控制台似乎只有崩溃发生在哪里?为什么?如何摆脱这个

此外

控制台初始化后,我有:

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。