【问题标题】:package up all dependencies in requirements.txt [duplicate]打包requirements.txt中的所有依赖项[重复]
【发布时间】:2019-12-17 15:24:49
【问题描述】:

我正在尝试打包我们的代码库以进行部署。该包还需要在 requirements.txt 中包含所有依赖包。过去我所做的是为项目设置一个 virtualenv,并将代码库与 virtualenv 站点包一起打包。我想知道是否有更简单的方法来获取 requirements.txt 中的所有依赖项并将它们与他们的依赖项和我的代码库一起打包。

谢谢。


感谢所有 cmets 和建议,我想我找到了我要找的东西。我结束了创建一个临时文件夹(pip install --target ./temp),我的脚本在其中解析 requirements.txt 并将其中的所有模块安装到临时文件夹中。这使我能够隔离我需要的所有模块及其依赖项。

【问题讨论】:

  • 看起来其他人也有同样的问题;似乎有一些有用的程序可以做到这一点。也许这会有所帮助? List dependencies in Python
  • “打包”到底是什么意思?创建一个 ZIP 文件?还是 Python 轮子?
  • @deceze,压缩包
  • 您是否有特定的工具可以执行此操作,或者您是否手动执行此操作?虽然有时需要将程序打包为包含依赖项的 ZIP,但这并不常见。仅打包程序本身并包含一个 list 依赖项,然后可以根据需要获取这些依赖项更为常见。当您确实需要一个 ZIP 文件(想到 AWS Lambda 等)时​​,通常会有专门的工具来处理打包。一些上下文在这里会有所帮助。
  • @deceze,是的,我正在为 aws lambda 创建包,我使用了一些工具,例如无服务器。但是为此,我不能使用我们组织尚未批准的一些工具,所以我坚持自己打包。目前我正在考虑使用 zipfile 执行一个简单的 python 脚本,但我需要一种方法来获取所有依赖项。

标签: python


【解决方案1】:

非常简单,进入你的 virtualenv 并执行pip freeze -l > requirements.txt。 这将正确地满足您的要求。在另一端,你唯一需要做的就是 pip install -r requirements.txt。

【讨论】:

  • 我需要创建一个完整的包,其中包含我的代码库的所有依赖项,以便在无法运行 pip install 的环境中进行部署。
  • 你在哪里部署你的应用程序?
  • 要部署到 aws lambda 的包。
  • 很好,那么您需要使用 AWS SAM CLI 构建命令。这是一些文档docs.aws.amazon.com/lambda/latest/dg/…
  • 不是我想要的,但我能够从你建议的链接中得到一些想法。谢谢。
猜你喜欢
  • 2021-10-11
  • 2023-03-28
  • 1970-01-01
  • 2017-11-06
  • 2022-01-17
  • 1970-01-01
  • 2021-12-18
  • 2011-10-01
  • 2017-01-13
相关资源
最近更新 更多