在项目中本地安装Python依赖项

hen*_*hen 2 python pip python-2.7 requirements.txt

我来自NodeJS,正在学习Python,想知道如何requirements.txt在项目的本地文件中正确安装软件包。

对于节点,这是通过在package.jsonvia中管理和安装软件包来完成的npm install。但是,Python项目的约定似乎是将软件包添加到名为的目录中lib。当我这样做时,pip install -r requirements.txt我认为这会在我的计算机上进行全局安装,类似于节点npm install -g全局安装。如何将我的requirements.txt文件的依赖项安装在名为lib的文件夹中?

Hen*_*ody 9

推荐的方法是使用虚拟环境。您可以通过 pip 安装 virtualenv

pip install virtualenv
Run Code Online (Sandbox Code Playgroud)

然后在你的项目目录中创建一个虚拟环境:

virtualenv env
Run Code Online (Sandbox Code Playgroud)

这将创建一个名为env(你可以随意命名它)的目录,它将反映你的全局 python 安装。在里面env/会有一个名为的目录lib,其中将包含 Python 并将存储您的依赖项。

然后使用以下命令激活环境:

source env/bin/activate
Run Code Online (Sandbox Code Playgroud)

然后使用 pip 安装您的依赖项,它们将安装在虚拟环境中env/

pip install -r requirements.txt
Run Code Online (Sandbox Code Playgroud)

然后任何时候返回项目,source env/bin/activate再次运行,以便可以找到依赖项。

部署程序时,如果部署的环境是物理服务器,或者虚拟机,可以在生产机器上按照同样的流程进行。如果部署环境是少数无服务器环境之一(例如 GCP App Engine),则提供requirements.txt文件就足够了。对于其他一些无服务器环境(例如 AWS Lambda),需要将依赖项包含在项目的根目录中。在这种情况下,您应该使用pip install -r requirements.txt -t ./.


tem*_*mmo 5

使用此命令
pip install -r requirements.txt -t <path-to-the-lib-directory>

  • 谢谢!不知道为什么这没有很好的记录。我找不到有关如何执行此操作的任何信息。我安装软件包的文件夹应该包含在`.gitignore` 文件中吗? (3认同)
  • @henhen 如果您打算分发您的软件包,那么是的。更多信息 [链接](https://git-scm.com/docs/gitignore) (2认同)