【发布时间】:2019-01-28 22:51:21
【问题描述】:
我有一个我在本地使用的 Python 应用程序,需要通过 pipenv run python3 appname.py 启动它才能加载具有已安装依赖项的虚拟环境。这一切都在 macOS 上。
我想要实现的是能够在任何地方使用$ appname [args] 运行这个应用程序。
所以我做的是:
- 将
#!/usr/bin/env pipenv run python3添加到appname.py; - 使用
chmod +x appname.py使该文件可执行; - 用
ln -s /path/to/appname.py ~/.bin/appname创建符号链接; - 把
~/.bin放在我的$PATH上。
现在,当我启动 $ appname 时,pipenv 在 ~/.bin 文件夹中创建了一个新的虚拟环境并抱怨缺少依赖项,而不是跟随脚本的实际位置。
有没有办法克服这个问题?或者也许是实现我想要的更好的方法?
【问题讨论】:
-
请注意,
#!/usr/bin/env pipenv run python3将运行env "pipenv run python3",这意味着这些参数将通过单个字符串传递给/usr/bin/env。您只能在 shebang 行中使用 单个 参数
标签: python symlink shebang pipenv