【问题标题】:How to ship a virtual environment/distribution in lieu of binary如何以虚拟环境/分发代替二进制
【发布时间】:2026-01-31 10:05:01
【问题描述】:

我有一个 python 库,它主要以单个图形应用程序为中心。我本来打算制作二进制文件,这样人们就不需要安装 python 来使用它,但是由于各种原因,这样做并不是那么简单。因此,我试图想出最轻松的方式来打包它,以便非程序员(例如微生物学家)可以使用该程序,而不必担心他们的 python 分布和虚拟环境以及其他麻烦。如果必须安装 python 发行版或虚拟环境才能运行,许多人不会使用该程序,并且在解决二进制文件问题之前,我需要一个解决方法。

是否有可能提供一个完整的虚拟环境,并在一个文件夹或其他东西中分发 python,以便任何人都可以启动应用程序?例如,他们下载文件,打开终端,输入“python thisprogram.py”然后它就启动了? ImageJ 有点像这样。如果你必须与一个完整的新手分享你的 python 库,你会怎么做?

我愿意接受任何类型的黑客攻击和变通方法。

【问题讨论】:

    标签: python python-2.7 virtualenv


    【解决方案1】:

    查看开发运维工具,例如 AnsiblePuppet。例如,您可以编写一个 ansible playbook,通过一次调用完成您描述的所有操作。或者,您可以编写一个 bash 脚本来设置 venv 和所有内容。

    Docker

    【讨论】:

    • bash 脚本是否可以包含 python 而不必安装 python? EG 是否包含 python 发行版?
    • 嗯,Docker 很好。 Ansible 需要安装 python,而 Puppet 则大材小用。 Vagrant 是另一种选择。
    • 可爱的流浪汉看起来很酷。你们知道任何特定于 python 的视频/教程吗?
    • 所以没有办法只发送 python 发行版和库,并让 python dist 指向包含的包?