Я использую Fedora 15 64bit и python 2.7
Когда я запускаю python test.py
из командной строки, он работает хорошо, но когда я запускаю subprocess.call(["python","test.py"])
из другого модуля python, я получаю
File "/usr/lib64/python2.7/site.py", line 557, in <module>
main()
File "/usr/lib64/python2.7/site.py", line 539, in main
known_paths = addusersitepackages(known_paths)
File "/usr/lib64/python2.7/site.py", line 268, in addusersitepackages
user_site = getusersitepackages()
File "/usr/lib64/python2.7/site.py", line 243, in getusersitepackages
user_base = getuserbase() # this will also set USER_BASE
File "/usr/lib64/python2.7/site.py", line 233, in getuserbase
USER_BASE = get_config_var('userbase')
File "/usr/lib64/python2.7/sysconfig.py", line 535, in get_config_var
return get_config_vars().get(name)
File "/usr/lib64/python2.7/sysconfig.py", line 434, in get_config_vars
_init_posix(_CONFIG_VARS)
File "/usr/lib64/python2.7/sysconfig.py", line 287, in _init_posix
raise IOError(msg)
IOError: invalid Python installation: unable to open /usr/local/lib64/python2.7/config/Makefile (No such file or directory)
Как я могу это исправить?
UPDATE: эта трассировка стека, которую я получаю при запуске скрипта из Eclipse.
subprocess.call(["python","test.py"])
от CL - он также работаетsubprocess.call(["python","test.py"])
из Eclipse - он не работаетЯ предполагаю, что вы используете что-то вроде pydev для разработки.
Если вы посмотрите на вкладку "Интерпретатор" в "Запуск конфигураций", вы увидите путь python (с помощью "См. Результирующую командную строку...") и двоичный код, используемый для этой команды. Pydev изменяет PYTHONPATH (это не то же самое, что и в командной строке).
Я бы посоветовал вам попробовать заглянуть внутрь (или даже попытаться запустить командную строку с тем же PYTHONPATH, что и в pydev, и посмотреть, есть ли у вас одинаковые ошибки.
НТН