2011-11-24 67 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

相关问题