Невозможно запустить один модуль Python из другого (при запуске из Eclipse)

1

Я использую 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.

  • когда я запускаю test.py из CL - он работает
  • когда я запускаю скрипт, содержащий
    subprocess.call(["python","test.py"]) от CL - он также работает
  • когда я запускаю скрипт, содержащий subprocess.call(["python","test.py"]) из Eclipse - он не работает
  • 0
    Этот файл действительно отсутствует в файловой системе? Или это там?
  • 0
    Да, этот файл отсутствует. На самом деле он находится в /usr/lib64/python2.7/config/Makefile. Главный вопрос: почему он запускается из CL, а не из модуля python.
Показать ещё 10 комментариев
Теги:
fedora

1 ответ

0
Лучший ответ

Я предполагаю, что вы используете что-то вроде pydev для разработки.

Если вы посмотрите на вкладку "Интерпретатор" в "Запуск конфигураций", вы увидите путь python (с помощью "См. Результирующую командную строку...") и двоичный код, используемый для этой команды. Pydev изменяет PYTHONPATH (это не то же самое, что и в командной строке).

Я бы посоветовал вам попробовать заглянуть внутрь (или даже попытаться запустить командную строку с тем же PYTHONPATH, что и в pydev, и посмотреть, есть ли у вас одинаковые ошибки.

НТН

  • 0
    PS: Это не должно иметь никакого отношения к релизу Linux или 32/64 бит IMO.
  • 0
    Большое спасибо! Я очистил PYTHONPATH в Eclipse, и теперь он работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню