【问题标题】:get path of python binary that's executing the script [duplicate]获取执行脚本的python二进制文件的路径[重复]
【发布时间】:2011-03-01 13:24:11
【问题描述】:

我有一个 Pylons 控制器(无关,但解释了我为什么需要这个)说 starter.py,它使用以下命令启动另一个进程:

retcode = subprocess.call(('python','/path/to/myScript.py'))

现在,由于应用程序在虚拟环境中运行,python 不是要调用的正确二进制文件,因为它无法访问安装在我的虚拟环境中的站点包。

应该是:

retcode = subprocess.call(('path/to/virtual/env/bin/python','/path/to/myScript.py'))

并且path/to/virtual/env/bin/python 与正在运行的starter.py 相同。

是否有机会不设置此路径(例如,在 .ini 文件中)并检索它?

【问题讨论】:

    标签: python pylons virtualenv


    【解决方案1】:

    路径在sys.executable中可用。

    【讨论】:

    • 有史以来最快的答案,我会在允许时接受。谢谢
    • 我发现了一个不正确的极端情况——Sublime Text 3 中的内置 Python,其中 sys.executable 只是 python3
    • @PaulBissex:对于嵌入式解释器,甚至可能不存在独立的 Python 二进制文件,因此对于这些情况您无能为力。一般来说,最好尝试在当前解释器中运行 Python 代码,而不是分叉到子解释器。
    • @SvenMarnach 如果文件是自动执行的怎么办?假设myScript.py 已编译为myScript.exe
    • @TSR 我从来没有这样做过(我不使用 Windows),所以我不能确定。但是,链接文档表明 sys.executable 在这种情况下将是 None 或空字符串。
    猜你喜欢
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 2010-10-10
    • 2012-10-20
    • 1970-01-01
    相关资源
    最近更新 更多