Установка и восстановление переменной среды в командной строке Windows требует, к сожалению, «несколько мучительного» подхода ...:
SET SAVE=%PYTHONPATH%
SET PYTHONPATH=.
python scripts/doit.py
SET PYTHONPATH=%SAVE%
Вы можете использовать небольшой вспомогательный скрипт Python, чтобы сделать его менее болезненным, например,
import os
import sys
import subprocess
for i, a in enumerate(sys.argv[1:]):
if '=' not in a: break
name, _, value = a.partition('=')
os.environ[name] = value
sys.exit(subprocess.call(sys.argv[i:]))
должен называться, например,
python withenv.py PYTHONPATH=. python scripts/doit.py
(я кодировал его так, чтобы он работал для любого подпроцесса , а не только для скрипта Python - если вы заботитесь только о скриптах Python, вы можете пропустить второй python в cal и поставить 'python' в sys.argv[i-1]
в коде, затем используйте sys.argv[i-1:]
в качестве аргумента для subprocess.call).