无法从另一个Python模块运行(在Eclipse中运行时)

1 投票
1 回答
582 浏览
提问于 2025-04-17 06:59

我在使用64位的Fedora 15和Python 2.7。

当我在命令行中运行 python test.py 时,一切正常,但当我在另一个Python模块中运行 subprocess.call(["python","test.py"]) 时,就出现了问题:

  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运行脚本时,出现了这个错误信息。

  • 当我从命令行运行test.py时 - 一切正常
  • 当我从命令行运行包含
    subprocess.call(["python","test.py"]) 的脚本时 - 也正常
  • 但当我从Eclipse运行包含 subprocess.call(["python","test.py"]) 的脚本时 - 就失败了

1 个回答

0

我猜你是在用像pydev这样的工具进行开发。

如果你查看一下“运行配置”中的“解释器”选项卡,你应该能看到Python的路径(还有“查看结果命令行...”的选项)和用于命令的二进制文件。pydev会修改PYTHONPATH(这和你在命令行中看到的不同)。

我建议你可以看看里面的内容(或者试着用和pydev中相同的PYTHONPATH来运行命令行,看看是否会出现相同的错误)。

希望这对你有帮助。

撰写回答