提交我的应用程序及其虚拟环境

Handing in my application, along with its virtual environment

我有一个 python 项目即将完成。 它的所有依赖项和包都在我的 venv 中提供,它位于我的应用程序旁边(应该如此)。该项目是通过 venv 开发的。不出所料。

我的问题是: 如果我提交我的项目并包含 venv 文件夹,用户是否可以通过我提供的 venv 运行 我的程序? 换句话说,如果我指示他们执行:path\to\my\venv\python.exe path\to\my\app.py,它会起作用吗? 这是一件事吗?

可选的奖励问题:我在 Windows。假设我的程序是独立于平台的,如果它们在 linux 上,这种方法是否有效? (我怀疑...)

谢谢。

在 Endyd 和 Kenny Ostrom 的评论以及一些研究之后,我要为未来的读者回答我自己的问题。

虚拟环境不是为这类任务设计的。不能保证 venv 在转移到另一个系统后会正常工作。

常用的方法是使用 pip 通过 pip freeze > requirements.txt 创建项目的 "requirements.txt"。 然后用户将创建自己的 venv,并使用 pip install -r requirements.txt 将他们的 venv 与您的同步。

如果您想要的是可执行文件,您可以查看某些工具,例如 PyInstaller。