我正在构建一个基于python3的应用程序,它使用了tkinter和其他几个软件包,我想创建一个appImage或pyinstaller文件,我可以将其交付给我的远程团队成员。在花了4天的时间试图让pyinstaller工作但没有成功之后,我决定用所需的python包和最小的bash脚本创建一个venv,并分发一个tar文件。我认为这将是一个快速和直接的方式去,但即使是这是证明不是那么容易,因为我认为这将是。我很乐意接受建议。
我首先创建了一个包含python3 venv的文件夹(python3-m venv.),并添加了我所有的应用程序文件。我激活venv并使用pip安装python依赖项。我测试了我的应用程序,它按预期工作,然后我创建了文件夹的tar映像。
当我在一个新的虚拟机上解压缩tar文件并激活venv进行测试时,它失败了,因为没有找到包。为什么?虚拟机是我用来创建应用程序的相同操作系统和机器架构。我对其中一个应该已经在venv中的软件包进行了pip安装,可以肯定的是,它们都没有显示出来。
回到开发系统,我检查了包是否在我的tared文件夹中,并且它们“已经满足”。那么到底发生了什么?
此外,我发现tkinter依赖的tcl/tk在默认情况下没有安装,所以这是一个venv无法解决的外部依赖,所以我的选择似乎变窄了。我只是很困惑为什么venv不保留我的应用程序需要的包。
接下来,我将研究创建appImage需要做些什么。
1条答案
按热度按时间4ktjp1zp1#
兄弟venv只是一个单独的环境,你的项目和依赖关系,你需要检查在虚拟机,你venv是激活或不。它只在命令提示符下工作,请在命令提示符下激活venv。对于项目的移植,你可以使用Docker。