У меня установлено 2 интерпретатора Python на компьютере с Windows 10. Python 3.6 из ArcGIS pro 2.2 и Python 2.7 из ArcMap 10.6, используя cmd
в Windows:
"C:/Program Files/ArcGIS/Pro/bin/Python/Scripts/propy" -c "import arcpy;print(arcpy.__path__)"
Вывод:
'C:\\Program Files\\ArcGIS\\Pro\\Resources\\ArcPy\\arcpy'
Это ожидаемый результат, но мне нужно сделать то же самое, используя subprocess.Popen
из Python2.7, а также нужно использовать shell=True
cmd = """ "C:/Program Files/ArcGIS/Pro/bin/Python/Scripts/propy" -c "import arcpy;print(arcpy.__path__)" """
subprocess.Popen(cmd, shell=True,stdout = subprocess.PIPE)
process.stdout.read()
Это вызовет ошибку:
Fatal Python error: Py_Initialize: unable to load the file system codec
File "C:\Python27\ArcGIS10.5\lib\encodings\__init__.py", line 123
raise CodecRegistryError,\
В основном используется интерпретатор Python2.7, я попытался установить %PYYHONPATH%
на Python3.6, но проблема все та же
Просто примечание, propy
- это .bat
, который активирует virtualenv Python и, следовательно, должен правильно все настраивать
Как получить правильный вывод, используя subprocess.Popen
?