标签: requirements.txt

使用pyproject.toml时还需要requirements.txt吗?

自 2022 年中期以来,现在可以取消setup.pysetup.cfg转而使用pyproject.toml. 可编辑安装适用于最新版本的 setuptools 和 pip,甚至官方打包教程setup.py也从pyproject.toml.

然而,有关的文档requirements.txt似乎也已被删除,我想知道现在将固定的需求放在哪里?

回顾一下:过去的常见做法是放置依赖项(没有版本固定),以setup.py避免当此包与需要相同依赖项但版本要求冲突的其他包一起安装时出现问题。对于打包库来说, asetup.py通常就足够了。

对于部署(即非库),您通常还提供requirements.txt版本固定的依赖项。因此,您不会意外地获得该包经过测试的最新、最好的依赖项版本。

所以我的问题是,有什么改变吗?requirements.txt当与 一起使用时,您仍然将固定的需求放在其中吗pyproject.toml?或者有一个额外的部分pyproject.toml吗?某处有相关文档吗?

python requirements.txt python-packaging pyproject.toml

49
推荐指数
3
解决办法
2万
查看次数

告诉pip安装需求文件中列出的软件包的依赖项

开发一个Django Web应用程序,我有一个我需要在virtualenv中安装的软件包列表.说:

Django==1.3.1
--extra-index-url=http://dist.pinaxproject.com/dev/
Pinax==0.9b1.dev10
git+git://github.com/pinax/pinax-theme-bootstrap.git@cff4f5bbe9f87f0c67ee9ada9aa8ae82978f9890
# and other packages
Run Code Online (Sandbox Code Playgroud)

最初我在开发过程中一个接一个地手动安装它们.这安装了所需的依赖项,我最终pip freeze在部署应用程序之前使用了它.

问题是,当我升级一些软件包时,一些依赖项不再使用也不需要,但它们仍然被列出pip freeze.

现在,我想以这种方式建立一个新的virtualenv:

  • 将所需的包(没有它们的依赖项)放在需求文件中,
    比如manual-requirements.txt
  • 用它们的依赖项安装它们
    pip install -r manual-requirement.txt(←问题,这不会安装依赖项)
  • 冻结完整的virtualenv
    pip freeze -r manual-requirements.txt > full-requirements.txt
    并部署.

没有手动在新的virtualenv中重新安装软件包来获取它们的依赖关系的任何方法吗?这很容易出错,我希望自动化从不再需要的旧依赖项中清除virtualenv的过程.

编辑:实际上,pip 安装未在需求文件中明确列出的依赖项,即使文档告诉我们这些文件是扁平的.关于我希望安装哪些依赖项我错了.我会让这个问题让任​​何人对pip没有安装所有依赖项有疑问.

python pip requirements.txt

48
推荐指数
5
解决办法
10万
查看次数

在requirements.txt中,代字号等于(〜=)是什么意思?

requirements.txt我正在使用的Python库中,其中一个要求指定如下:

mock-django~=0.6.10
Run Code Online (Sandbox Code Playgroud)

什么~=意思?

python requirements.txt

41
推荐指数
5
解决办法
1万
查看次数

从需求文件中删除未使用的包

有没有简单的方法可以从需求文件中删除不再使用的包?

我为此任务编写了一个bash脚本,但是它没有按照我的预期工作.因为,某些包不遵循其PyPI项目名称.例如;

dj-database-url
Run Code Online (Sandbox Code Playgroud)

包用作

dj_database_url
Run Code Online (Sandbox Code Playgroud)

我的项目在自己的需求文件中有许多包,因此,逐个搜索它们太杂乱,容易出错并且需要花费太多时间.在我搜索时,IDE还没有这个属性.

python refactoring pip pycharm requirements.txt

36
推荐指数
4
解决办法
2万
查看次数

pip freeze 创建了一些奇怪的路径而不是包版本

我正在开发一个 python 包。我pip freeze > requirements.txt用来将所需的包添加到requirements.txt 文件中。但是,我意识到一些包,而不是包版本,在它们前面有一些路径。

numpy==1.19.0
packaging==20.4
pandas @ file:///opt/concourse/worker/volumes/live/38d1301c-8fa9-4d2f-662e-34dddf33b183/volume/pandas_1592841668171/work
pandocfilters==1.4.2
Run Code Online (Sandbox Code Playgroud)

而在环境内部,我得到:

>>> pandas.__version__
'1.0.5'
Run Code Online (Sandbox Code Playgroud)

你知道如何解决这个问题吗?

python pip path requirements.txt

34
推荐指数
1
解决办法
7350
查看次数

Travis对每个python版本的特殊要求

我需要用于python 2.6的unittest2和importlib,这是travis测试的其他python版本所不需要的.

有没有办法告诉Travis-CI每个python版本都有不同的requirements.txt文件?

python travis-ci requirements.txt

30
推荐指数
2
解决办法
3821
查看次数

对于R,有什么类似requirements.txt的吗?

是否有类似requirements.txtPython 的功能,您可以在其中存储用于文件的包列表,并且每当其他人想要运行您的程序并且需要安装依赖项时,他们就可以这样做pip install -r requirements.txt.

我认为,在将R脚本部署到生产环境中时,这会有很大帮助.如果没有这样的功能,我该如何复制它?

r pip requirements.txt install.packages

27
推荐指数
1
解决办法
3285
查看次数

pip冻结没有已安装包的依赖关系

当我这样做时,pip freeze我得到了我明确安装的软件包以及那些软件包依赖的软件包.

例如:

$ pip install fabric
...
$ pip freeze
Fabric==1.0.1
paramiko==1.7.6
pycrypto==2.3
Run Code Online (Sandbox Code Playgroud)

好的,但后来我又在另一个环境中安装了这个requirements.txt,pip install我得到了相同的结果,删除了最后两行.

所以我的问题是:如何创建最简化的requirements.txt,其中所有可计算的依赖关系都没有显示?

python pip requirements.txt

25
推荐指数
3
解决办法
5311
查看次数

检查我的Python是否包含所有必需的包

我有一个requirements.txt文件,其中包含我的虚拟环境所需的软件包列表.是否可以找出文件中提到的所有包是否存在.如果缺少某些软件包,如何找出丢失的软件包?

python pip requirements.txt

20
推荐指数
5
解决办法
2万
查看次数

无法使用pip install requirements.txt进行安装

我正在尝试使用requirements.txt 安装BitTornado for Python 2.7,我收到以下错误:

Collecting requirements.txt
  Could not find a version that satisfies the requirement requirements.txt (from versions: )
No matching distribution found for requirements.txt
Run Code Online (Sandbox Code Playgroud)

这是我在requirements.txt中的代码:

-e git+https://github.com/effigies/BitTornado.git#egg=python2.7
Run Code Online (Sandbox Code Playgroud)

我也试过-e git + https://github.com/effigies/BitTornado.git@python2.7但仍然无法正常工作.有人知道为什么会这样吗?

注意:"python2.7"是分支名称

提前致谢

python pip python-2.7 requirements.txt

19
推荐指数
2
解决办法
2万
查看次数