【问题标题】:Python - ensure I'm running the same package versions in both Windows and LinuxPython - 确保我在 Windows 和 Linux 中运行相同的包版本
【发布时间】:2018-01-23 13:25:21
【问题描述】:

我有一台 Windows 10 机器,用于开发我的代码 (Anaconda 3.5)。现在我需要让我的代码在 Linux 服务器上运行,以便其他人可以将它用作应用程序的一部分。设置和维护我的 Linux 环境以使其在软件包和版本号方面复制 Windows 环境的最佳方法是什么?

我正在运行 Anaconda Python 3.5 的 Windows 环境中训练和保存 DataFrame、SVM (Sklearn) 和 ANN (Keras)。

在 Linux 服务器上,我需要能够加载和使用这些模型,这需要具有相同的包和包版本。

如何保持环境运行相同的包版本?

计划是在我获得更多数据后发布更新更好的模型。随着版本的发布,这些可能会在较新版本的 Keras、Sklearn 等上运行。如果需要,我如何确保在 Python 中我可以拥有最新的包版本,但仍然能够运行旧模型(可能使用旧包版本进行训练和保存)?向后兼容性非常重要。

背景: 我正在创建一个使用许多 ANN 和 SVM 的“大小调整算法”。对于其他人使用这个算法,它将在 Linux 服务器上运行,并且以某种方式(软件人员确保我可以完成)集成或链接到公司软件中。不同的模型将被加载并保存到内存中,并在调用以调整大小时使用。重要的是,即使我发布了更新、更好的版本,仍然可以使用旧的大小调整算法。

显然,我是公司的 Python 专家,尽管我从一月份才开始使用它,并且没有发布算法供他人使用的经验。非常感谢您以最佳方式设置系统的帮助。

非常感谢

【问题讨论】:

  • 从阅读pip freeze 开始,以后可以使用它来安装。
  • 你试过探索 Docker 吗?我认为使用它可以解决您的问题。 docker.com

标签: python algorithm release-management


【解决方案1】:

在具有正确软件包的机器上:

pip freeze > requirements.txt

在需要正确软件包的机器上,已将该文件复制到其中:

pip install -r requirements.txt

【讨论】:

  • 啊哈!那太棒了。但是如何确保我仍然可以运行旧版本?这适用于 Docker 吗?
  • 需求文件会获取你正在使用的所有东西的特定版本号,然后 pip 会在网上找到这些。没有理由它在 Docker 中不起作用,但我没有尝试过。
猜你喜欢
  • 1970-01-01
  • 2011-05-15
  • 1970-01-01
  • 2015-02-18
  • 1970-01-01
  • 2015-09-01
  • 1970-01-01
  • 2019-05-19
  • 2014-10-30
相关资源
最近更新 更多