如何在 Python shell 脚本中使用 pipenv?

How to use pipenv in Python shell script?

我在 Python 中编写的 shell 脚本需要一个模块,所以我使用 pipenv 来安装它。我可以 运行 命令正常使用:

~$ pipenv run python3 foo

现在,如果我只想在命令行上 运行 ~$ foo(MacOS 上的 fish shell,已安装自制程序),我该如何在 shebang 中调用 pipenv 环境我的 Python 脚本?或者有更好的方法吗?

如此处所述https://pipenv.readthedocs.io/en/latest/ 您需要先激活虚拟环境。这将生成另一个 shell 并激活虚拟环境

$ pipenv shell

这样你就可以运行

$ python foo

执行您的脚本。然后你可以使用

#!/usr/bin/env python

在脚本的第一行并使脚本可执行 (chmod +x foo.py) 以便您可以 运行

$ ./foo

如果该脚本的位置是您的 PATH 环境变量的一部分,您现在应该可以 运行

$ foo.py

如果您不喜欢该扩展,您也必须从您的脚本中删除

使用 pipenv-shebang 你可以 运行 你的脚本

pipenv-shebang PATH/SCRIPT

或者您可以插入 shebang

#!/usr/bin/env pipenv-shebang

到 运行 它只需要 PATH/SCRIPT.

像下面这样创建包装文件对我有用,但有点老套。

import subprocess
if __name__ == '__main__':
    subprocess.run(['pipenv', 'run', 'foo'])