l inicio del subproceso de Python tiene un comportamiento diferente según el iniciador

Estoy intentando iniciar Python 2.5 desde Python 2.6. La razón de esto es una biblioteca compilada que estoy tratando de usar (GDAL) no es compatible con la versión de Python distribuida con otro programa (ArcGIS).

Esto es lo que intento hacer. Losmain.py archivo en Python 2.6:

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

gdal_python_exec.bat es un script por lotes de Windows que activa la versión 2.5 de Python que quiero mientras configura algunas variables de entorno:

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

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

Cuando corromain.py en una línea de comandos de DOS comopython.exe main.py (esa es la versión 2.6 de Arc de Python), las cosas funcionan bien. Sin embargo, si tomo el mismo script y lo agrego como una 'caja de herramientas' dentro de la aplicación principal y lo inicio desde allí, obtengo un "DLL no encontrado" para la biblioteca GDAL dentro deimport_tests.py ¡archivo

¿Cómo puede suceder esto cuandosubprocess ¿es el módulo que está lanzando un intérprete de Python diferente? ¿Alguna idea sobre lo que podría estar pasando?

Edita: Puedo verificar que laos.environ['PATH'] las variables son las mismas en ambas llamadas.

Edit2: LosC:\Program Files\ArcGIS...\Binl directorio @ contenía un dll que no era compatible con mis enlaces de Python. Windows buscó primero en el cwd e intentó cargar ese dll, falló y luego informó un error de "dll no encontrado".

Respuestas a la pregunta(2)

Su respuesta a la pregunta