【发布时间】:2020-07-10 17:09:11
【问题描述】:
我希望在 GitHub 上放置一个 python 程序,并让其他人下载并在具有各种操作系统的计算机上运行它。我对 python 比较陌生,但已经使用它足够注意到让所有包含的模块的各种版本一起工作可能会出现问题。我刚刚发现requirements.txt 的使用(使用pipreqs 生成并使用命令pip install -r /path/to/requirements.txt 部署)但很惊讶地注意到requirements.txt 实际上并没有说明正在使用什么版本的python,所以显然不是完整的解决方案。所以我的问题是:需要什么样的规范/文件/其他东西才能确保下载我的项目的人实际上能够以最少的问题运行它。
编辑:我的计划是以得到最多支持的答案为指导。但到目前为止,在 4 个答案和 127 次观看之后,没有一个答案甚至有一个赞成票。如果有些答案不好,那么看看一些 cmets 为什么他们不好。
【问题讨论】:
-
为了尽可能减少问题,您是否考虑过 Docker(或其他基于容器的解决方案)? docker.com
-
Re: Docker... 刚刚发现:“开发人员可以放心,该应用程序可以在任何其他 Linux 机器上运行”——但我希望它可以在任何操作系统上运行。 (opensource.com/resources/what-docker)
-
通常您支持所有经典操作系统:windows (docs.docker.com/docker-for-windows) 和 mac (docs.docker.com/docker-for-windows)
-
这里的答案是高度上下文相关的。 Python 程序是否在做
sys或os或子进程类型函数或更数学/分析的事情?前者可以随 Python 的每个版本而改变,而后者可以完全独立于版本。有哪些依赖库? numpy 和 pandas 跨平台的工作非常出色,所以你可以检查你有一个最小版本。 Python 的主要版本是什么? Python 2.x 和 3.x 与依赖库之间的区别变得更加困难。如果您针对常见的主要版本编写好的代码,那是一个很好的开始。 -
正如无数答案所证明的那样,有很多方法可以解决这个问题。我真的很好奇答案是否会因了解应用程序的什么而改变。我想相信这不重要,但我怀疑它可以。我也认为这在很大程度上取决于目标受众。精明的物理学博士运行机器学习应用程序与 Joe 互联网玩跳棋的 pygame。