2011-11-24 28 views
1

我使用的Fedora 15的64位和Python 2.7不能運行,從另外一個Python模塊(從Eclipse中運行時)

當我運行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) 

我該如何解決?

更新:這是從Eclipse運行腳本時得到的堆棧跟蹤。

  • 當我從CL運行test.py - 它的工作原理
  • 當我運行含有
    subprocess.call(["python","test.py"])從CL腳本 - 它也可以
  • 當我運行一個包含從Eclipse的subprocess.call(["python","test.py"]) 腳本 - 它失敗
+0

是這樣文件真的丟失在文件系統上嗎?或者它在那裏? – mac

+0

是的這個文件是不存在的。實際上它在/usr/lib64/python2.7/config/Makefile 主要問題是:爲什麼它是從CL運行並且是不是從python模塊運行。 – Ilia

+0

不知道爲什麼它會這樣。它看起來像是一個安裝問題,也許你可以嘗試詢問[SuperUser](http://superuser.com/)... – mac

回答

0

我假設你正在使用pydev進行開發。

如果您查看「運行配置」中的「解釋器」選項卡,應該看到python路徑(帶有「See results command-line ...」)和用於該命令的二進制文件。 Pydev改變了PYTHONPATH(它與命令行中的不一樣)。

我建議你應該嘗試裏面有一看(甚至嘗試用相同的PYTHONPATH從命令行運行中的PyDev,看看你得到同樣的錯誤。

HTH

+0

PS:這不應該對linux發行版或32/64位IMO有任何影響。 –

+0

非常感謝!我在Eclipse中清理了PYTHONPATH,現在它可以工作。 – Ilia

相關問題