파이썬 2.6에서 파이썬 2.5를 시작하려고합니다. 그 이유는 내가 사용하려고하는 컴파일 된 라이브러리 (GDAL)는 다른 프로그램 (ArcGIS)과 함께 배포 된 Python 버전에서 지원되지 않기 때문입니다.파이썬 하위 프로세스 시작은 실행 프로그램에 따라 다른 동작을합니다.
내가하려고하는 것은 다음과 같습니다. 파이썬 2.6의 main.py
파일 : GDAL을 가져
@echo off
set OSGEO4W_ROOT=C:\OSGeo4W
PATH=%OSGEO4W_ROOT%\bin;%PATH%
for %%f in (%OSGEO4W_ROOT%\etc\ini\*.bat) do call %%f
@echo on
@C:\OSGeo4W\bin\python.exe %1
import_tests.py
시도 :
import subprocess
p = subprocess.Popen(['C:\OSGeo4W\gdal_python_exec.bat', 'X:\\local\\import_tests.py'])
gdal_python_exec.bat
또한 일부 환경 변수를 설정하는 동안 내가 원하는 파이썬의 2.5 버전을 발생시키는 창 배치 스크립트입니다 :
try:
from osgeo import gdal
raw_input('Imported! (Press enter)')
except Exception, e:
print(e)
raw_input('Failed! (Press enter)')
내가 python.exe main.py
로 DOS 명령 줄에서 main.py
을 실행
import_tests.py
파일의 GDAL 라이브러리에 "DLL을 찾을 수 없습니다"라는 메시지가 표시됩니다.
subprocess
이 다른 파이썬 인터프리터를 시작하는 모듈 일 때 어떻게 될 수 있습니까? 무슨 일이 일어날 지에 대한 아이디어가 있습니까?
편집 : os.environ['PATH']
변수가 두 호출에서 모두 동일하다는 것을 확인할 수 있습니다.
편집 2 :C:\Program Files\ArcGIS...\Bin
디렉토리에는 내 파이썬 바인딩과 호환되지 않는 dll이 포함되어 있습니다. Windows가 cwd를 먼저 검색하여 dll을로드하려고 시도했지만 실패하고 "dll을 찾을 수 없음"오류가보고되었습니다.
기본 응용 프로그램에는 어떤 GUI를 사용하고 있습니까? gdal은 어떤 DLL을로드하려고합니까? 그들 중 하나가 성공적으로로드합니까? – Velociraptors
기본 GUI는 ArcGIS입니다. 내가 아는 한'gdal'은'gdal.dll'을로드하려고 시도하지만, 어떻게 알 수 있을지 확신 할 수 없습니다. 어떻게 확인할 수 있습니까? – Rich
[Process Explorer] (http://technet.microsoft.com)를 사용할 수 있습니다.com/ko-kr/sysinternals/bb896653)를 사용하여 특정 프로세스가로드 한 DLL을 확인하십시오. 이 경우 ArcGIS 및 모든 Python 프로세스를 확인해야 할 것이다. 원래의 문제를 감안할 때, ArcGIS가 파이썬이 아닌 무언가를 중독시킬 가능성이 가장 높다고 말할 수 있습니다. – Velociraptors