【问题标题】:Unix Interpreter wrapper that can fit into shebang可以放入 shebang 的 Unix 解释器包装器
【发布时间】:2018-11-05 20:58:06
【问题描述】:

python 可执行文件是“/path/A/B/python”。但不幸的是,我需要获取一个文件并导出一些环境变量以使该可执行文件可运行。

所以我想定义我自己的“解释器”,比如/home/name/mypython

#!/bin/bash 
source something
/path/A/B/python

并将上述脚本包含在 python 文件的 shebang 中

#!/home/name/mypython

## rest of the python script

但不幸的是它不起作用。它只是把我带到一个 python shell 而不做任何事情。我还应该做什么?

【问题讨论】:

    标签: python unix shebang


    【解决方案1】:

    假设:

    • python-script: path/to/my_script.py
    • python_executable 的路径:/path/A/B/python
    • 一个shell脚本:/home/name/mypython.sh

    您设置它的方式。 my_script.py 中的 shebang 调用 mypython.sh,它执行 sourcing 的命令,然后调用没有参数的 python 解释器,从而生成 python shell。

    将my_script.py的路径添加到mypython.sh,这样my_script.py中的shebang就被忽略了

    #!/bin/bash 
    source something
    /path/A/B/python path/to/my_script.py
    

    shebang 和 python 的工作原理有一个非常好的线程: Why do people write the #!/usr/bin/env python shebang on the first line of a Python script?

    【讨论】:

      猜你喜欢
      • 2020-03-06
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-06
      相关资源
      最近更新 更多