通过 pip -r requirements.txt 安装依赖项

时间:2021-05-16 09:49:27

标签: python pip requirements.txt

我想安装这个库:https://github.com/stefanfoulis/django-phonenumber-field

我是这样做的:

(venv) michael@michael:~/PycharmProjects/client$ pip install django-phonenumber-field[phonenumbers]
Requirement already satisfied: django-phonenumber-field[phonenumbers] in ./venv/lib/python3.8/site-packages (5.1.0)
Requirement already satisfied: Django>=2.2 in ./venv/lib/python3.8/site-packages (from django-phonenumber-field[phonenumbers]) (3.2.3)
Collecting phonenumbers>=7.0.2; extra == "phonenumbers"
  Downloading phonenumbers-8.12.23-py2.py3-none-any.whl (2.6 MB)
     |████████████████████████████████| 2.6 MB 2.8 MB/s 
Requirement already satisfied: sqlparse>=0.2.2 in ./venv/lib/python3.8/site-packages (from Django>=2.2->django-phonenumber-field[phonenumbers]) (0.4.1)
Requirement already satisfied: asgiref<4,>=3.3.2 in ./venv/lib/python3.8/site-packages (from Django>=2.2->django-phonenumber-field[phonenumbers]) (3.3.4)
Requirement already satisfied: pytz in ./venv/lib/python3.8/site-packages (from Django>=2.2->django-phonenumber-field[phonenumbers]) (2021.1)
Installing collected packages: phonenumbers
Successfully installed phonenumbers-8.12.23

我们可以看到这个库已经安装了它的依赖:phonenumbers 库。

但现在我想在requirements.txt中写下我需要某个版本的django-phonenumber-field。以便适当安装其依赖项

换句话说,如何为以后的pip install -r requirements.txt编写requirements.txt。

你能帮我吗?

======稍后添加====== pip freeze > requirements.txt 似乎不合适,因为它将包含所有依赖项。它会因依赖而变得负担过重。我会忘记为什么要安装一个特定的库。到底是不是依赖。如果是,依赖哪个库。

我想让 requirements.txt 尽可能清晰。 在这个特定示例中,我只需要一个指令:安装 django-phonenumber-field==5.1.0 并自己管理依赖项。

错误的方式(如果我停止使用该库,会变得臃肿且不清楚要删除的内容):

django-phonenumber-field==5.1.0
phonenumbers==8.12.23 

我想要的: django-phonenumber-field==5.1.0 [和所有依赖项]

2 个答案:

答案 0 :(得分:1)

正如@jonrsharpe 所说,您可以使用 pip freeze 列出您的所有依赖项,并将输出重定向到您的 requirements.txt 文件以更新它。

pip freeze > requirements.txt

答案 1 :(得分:0)

简单的方法是创建一个文本文件,输入 shell 命令,保存它并将它从 .txt 重命名为 .bat。现在您可以双击该文件并安装要求。你甚至可以执行 .bat