O lançamento do subprocesso python tem um comportamento diferente, dependendo do iniciador

Estou tentando iniciar o Python 2.5 a partir do Python 2.6. O motivo disso é que uma biblioteca compilada que estou tentando usar (GDAL) não é suportada para a versão do Python distribuída com outro programa (ArcGIS

Aqui está o que estou tentando fazer. Omain.py arquivo no Python 2.6:

import subprocess
p = subprocess.Popen(['C:\OSGeo4W\gdal_python_exec.bat', 'X:\\local\\import_tests.py'])

gdal_python_exec.bat é um script em lote do Windows que dispara a versão 2.5 do Python que eu quero, além de configurar algumas variáveis de ambiente:

@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 tenta importar gdal:

try:
    from osgeo import gdal
    raw_input('Imported! (Press enter)')
except Exception, e:
    print(e)
    raw_input('Failed! (Press enter)')

Quando corromain.py em uma linha de comando do DOS comopython.exe main.py (essa é a versão 2.6 do python do Arc), as coisas funcionam bem. No entanto, se eu pegar o mesmo script e adicioná-lo como uma 'caixa de ferramentas' dentro do aplicativo principal e iniciá-lo a partir daí, recebo uma "DLL não encontrada" para a lib GDAL dentro doimport_tests.py Arquivo

Como isso pode acontecer quandosubprocess é o módulo que está lançando um interpretador Python diferente? Alguma idéia do que poderia estar acontecendo?

Edita: Posso verificar se oos.environ['PATH']ariáveis são iguais em ambas as chamada

Edit2: OC:\Program Files\ArcGIS...\Bin diretório @ continha uma dll que não era compatível com minhas ligações python. O Windows pesquisou primeiro o cwd e tentou carregar essa dll, falhou e relatou o erro "dll não encontrado".

questionAnswers(2)

yourAnswerToTheQuestion