冻结 Python、virtualenv 和 pip 中特定于应用程序的依赖项

Freezing application-specific dependencies in Python, virtualenv and pip

我怎样才能为我的 flask 应用程序提供一个干净的 virtualenv,它只包含应用程序需要的依赖项?

我正在使用 Ubuntu 并且我有一个 Flask 应用程序,当我 运行 命令 pip freeze > requirements.txt 时,需求文件也会获得不必要的文件

这会导致上传到 heroku 时出现问题。

我该如何解决这个问题?

  1. 制作一个空白的虚拟环境。
  2. 尝试运行你的程序。
  3. 如果导入错误,请安装相关包,然后再转到(2)。
  4. 你现在有了一个只包含所需包的虚拟环境。冻结那个。

另一种简单的方法是使用 pipreqs。所以它基本上做的是根据任何项目的导入生成 pip requirements.txt 文件。

  1. 安装pipreqs

    pip 安装 pipreqs

  2. 然后pipreqs /path/to/project

您将在项目路径中生成 requirements.txt 文件。