通过$ PATH符号链接运行Pipenv环境到可执行的.py文件

时间:2018-08-22 16:02:30

标签: python symlink shebang pipenv

我有一个我在本地使用的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文件夹中创建一个新的虚拟环境,并抱怨缺少依赖项,所有这些都没有遵循脚本的实际位置。

有没有办法克服这个问题?还是实现我想要的更好的方法?

1 个答案:

答案 0 :(得分:0)

出于我的目的,更明智的做法是通过将代码(连同所有依赖项)打包到pyinstaller的可执行文件中来冻结我的代码。

我所做的是:

  1. pyinstaller安装为具有dev的{​​{1}}依赖项;
  2. 在项目目录中启动pipenv install --dev pyinstaller
  3. 使用pipenv shell打包应用程序;
  4. 将生成的自包含的pyinstaller --onefile appname.py可执行文件移动到我的[project path]/dist/appname目录中。

有一些不相关的问题需要克服,但是对我来说效果很好。