Я поддерживаю экспериментальный инструмент на 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 с:
- Python: VirEnv 2.7 build
- Консоль: Pycharm PyDev console
Traceback (последний вызов был последним): File "", строка 1, в Traceback (последний вызов был последним): файл "", строка 1, в файле "C: \ Python27 \ Lib \ multiprocessing \ forking.py", строка 380, в основном файле подготовки (prep_data) "C: \ Python27 \"Lib \ multiprocessing \ forking.py ", строка 504, в подготовке
Файл" C: \ Python27 \ Lib \ multiprocessing \ forking.py ", строка 380, в основном файле, path_name и т. Д. = Imp.find_module (main_name,dirs) ImportError: модуль с именем input не подготовлен (prep_data) File "C: \ Python27 \ Lib \ multiprocessing \ forking.py", строка 504, в подготовительном файле, path_name, etc = imp.find_module (main_name, dirs) ImportError: Нет модуля с именем input
Почему он ищет "C: \ Python27 \ Lib \ multiprocessing \" вместо сборки VirEnv 2.7?
Результат № 2 с:
- Python: VirEnv 2.7 от Anaconda
- Консоль: Pycharm Консоль PyDev
Трассировка (последний последний вызов): файл "", строка 1, в файле "C: \ Users"\ _____ \ AppData \ Local \ conda \ conda \ envs \ Python_27 \ lib \ multiprocessing \ spawn.py ", строка 105, в spawn_main exitcode = _main (fd) Файл" C: \ Users \ _____ \ AppData \ Local \ conda \ "conda \ envs \ Python_27 \ lib \ multiprocessing \ spawn.py ", строка 114, в файле _main prepare (prepare_data) в файле" C: \ Users \ _____ \ AppData \ Local \ conda \ conda \ envs \ Python_27 \ lib \ multiprocessing \ spawn.py ", строка 225, в подготовительном _fixup_main_from_path (data ['init_main_from_path']) файле" C: \ Users \ _____ \ AppData \ Local \ conda \ conda \ envs \ Python_27 \ lib \ multiprocessing \ spawn.py ", строка 277, в _fixup_main_from_path run_name =" mp_main") Файл" C: \ Users \ _____ \ AppData \ Local \ conda \ conda \ envs \ Python_27 \ lib \ runpy.py", строка 261, в коде run_path, файл fname = _get_code_from_file (имя_пути, имя_пути) Файл" C: \ Users \ _____ \ AppData \ Local \ conda \ conda \ envs \ Python_27 \ lib \ runpy.py ", строка 231, в _get_code_from_fileс открытым (fname, "rb") как f: OSError: [Errno 22] Недопустимый аргумент: 'B: \ WorkingSpace \ _____ \ API \'
Результат № 3 с:
- Python: VirEnv 2.7 build
- Консоль: терминал Pycharm
Передано без ошибок
Результат № 4с:
- Python: VirEnv 2.7 от Anaconda
- Консоль: терминал Pycharm
Передано без ошибок
Результат № 5 с:
- Python: VirEnv 2.7 от Anaconda
- Консоль: терминал Anaconda
Передано без ошибок
Итак, 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
При прохождении упрощенногокод для воспроизведения поведения, ошибка «ImportError: модуль не указан» возникает в forking.py, который находится в пути «C: \ Python27 \ Lib \ multiprocessing \».
Sys.path:
- 'C: \ Program Files \ JetBrains \ PyCharm Community Edition 2019.2 \ helpers \ pydev',
- 'C: \ Program Files \ JetBrains \ PyCharm Community Edition 2019.2 \ helpers \ third_party\ thriftpy ',
- ' C: \ Program Files \ JetBrains \ PyCharm Community Edition 2019.2 \ helpers \ pydev ',
- ' C: \ Windows \ SYSTEM32 \ python27.zip ',
- 'B: \ WorkingSpace \ _____ \ API \ virEnv_Desktop_V2.7 \ DLLs',
- 'B: \ WorkingSpace \ _____ \ API \ virEnv_Desktop_V2.7 \ lib',
- 'B: \ WorkingSpace \ _____ \ API \ virEnv_Desktop_V2.7 \ lib \ plat-win',
- 'B: \ WorkingSpace \ _____ \ API \ virEnv_Desktop_V2.7 \ lib \ lib-tk',
- 'B: \ WorkingSpace \ _____ \ API \ virEnv_Desktop_V2.7 \ Scripts',
- 'C: \ Python27 \ Lib',
- 'C: \ Python27 \ DLLs',
- 'C: \ Python27 \ Lib \ lib-tk',
- 'B: \ WorkingSpace \ _____ \ API \ virEnv_Desktop_V2.7',
- 'B: \ WorkingSpace \ _____ \ API \ virEnv_Desktop_V2.7 \ lib \ site-packages',
- 'B: \ WorkingSpace \ _____ \ API',
- 'B: / WorkingSpace / _____ / API'
Что происходит?