我有一个我在本地使用的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
文件夹中创建一个新的虚拟环境,并抱怨缺少依赖项,所有这些都没有遵循脚本的实际位置。
有没有办法克服这个问题?还是实现我想要的更好的方法?
答案 0 :(得分:0)
出于我的目的,更明智的做法是通过将代码(连同所有依赖项)打包到pyinstaller
的可执行文件中来冻结我的代码。
我所做的是:
pyinstaller
安装为具有dev
的{{1}}依赖项; pipenv install --dev pyinstaller
; pipenv shell
打包应用程序; pyinstaller --onefile appname.py
可执行文件移动到我的[project path]/dist/appname
目录中。有一些不相关的问题需要克服,但是对我来说效果很好。