相关疑难解决方法(0)

什么是setup.py?

任何人都可以解释,setup.py它是什么以及如何配置或使用?

python pypi setup.py python-3.x python-packaging

869
推荐指数
10
解决办法
52万
查看次数

在setuptools setup.py文件中引用installation_requires kwarg的requirements.txt

我有一个requirements.txt文件,我正在使用Travis-CI.看来愚蠢复制中都要求requirements.txtsetup.py,所以我希望到一个文件句柄传递给install_requires在kwarg setuptools.setup.

这可能吗?如果是这样,我该怎么做呢?

这是我的requirements.txt档案:

guessit>=0.5.2
tvdb_api>=1.8.2
hachoir-metadata>=1.3.3
hachoir-core>=1.3.3
hachoir-parser>=1.3.4
Run Code Online (Sandbox Code Playgroud)

python pip setuptools requirements.txt

255
推荐指数
13
解决办法
9万
查看次数

如何为多个环境自定义requirements.txt?

我有两个分支,开发和生产.每个都有依赖关系,其中一些是不同的.开发指向本身正在开发的依赖项.同样适用于生产.我需要部署到Heroku,它希望每个分支的依赖关系都在一个名为'requirements.txt'的文件中.

组织的最佳方式是什么?

我想到的是:

  • 维护单独的需求文件,每个分支一个(必须经常合并!)
  • 告诉Heroku我想要使用哪个需求文件(环境变量?)
  • 编写部署脚本(创建临时分支,修改需求文件,提交,部署,删除临时分支)

python deployment heroku requirements.txt

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

何时在setup.py中使用pip requirements文件与install_requires?

我正在使用带有virtualenv的pip来打包和安装一些Python库.

我想我正在做的是一个很常见的场景.我是几个库的维护者,我可以明确地指定依赖项.我的一些库依赖于第三方库,这些库具有我无法控制的传递依赖性.

我想要实现的是让pip install我的一个库下载/安装它的所有上游依赖项.我在pip文档中遇到的问题是,需求文件是否/如何自行完成,或者它们实际上只是对使用的补充install_requires.

我是否会install_requires在所有库中使用指定依赖项和版本范围,然后仅使用需求文件来解决冲突和/或冻结它们以进行生产构建?

让我们假装我生活在一个想象的世界(我知道,我知道),我的上游依赖是直截了当的,并保证永远不会冲突或破坏向后兼容性.我是否会被迫使用pip要求文件或者只是让pip/setuptools/distribute安装所有内容install_requires

这里有很多类似的问题,但我找不到任何与使用其中一个或者和谐地使用它们一样基本的问题.

python pip setuptools distribute setup.py

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

使用pip安装包的多个版本

在我的应用程序中,我想使用:

  • packageA,这需要 packageX==1.3
  • packageB,这需要 packageX==1.4
  • packageX==1.5

如何安装packageX带pip的多个版本来处理这种情况?

python pip

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

pyproject.toml 文件有什么用?

背景

我正要尝试从 GitHub 下载的 Python 包,发现它没有 . setup.py,所以我无法安装它

pip install -e <folder>
Run Code Online (Sandbox Code Playgroud)

相反,该包有一个pyproject.toml文件,该文件似乎与setup.py通常的条目非常相似。

我发现了什么

谷歌搜索引导我进入PEP-518,它setup.py在基本原理部分给出了一些批评。但是,它没有明确说明setup.py应该避免使用 ,或者pyproject.toml完全取代setup.py.

问题

pyproject.toml用来代替的东西setup.py吗?或者一个包应该同时带有 apyproject.toml和 a setup.py
如何安装pyproject.toml处于可编辑状态的项目?

python packaging pip pyproject.toml

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

为什么我应该在 setup.py 和requirements.txt 中复制我的依赖项?

我最近编写并发布了一个 python 包 - 这是我第一次向 PyPi 发布一些东西,所以我仍在学习。

我一直认为将您的需求同时存储在 setup.py 和requirements.txt 中似乎很疯狂,所以我让 setup.py 只读取requirements.txt 文件: https: //github.com/big- o/cherrypicker/blob/bf7382cbdabfc6608e3aec388903db32a917314c/setup.py#L32。不过,我从未见过任何其他项目这样做,这让我建议有充分的理由不这样做。

谁能向我解释为什么我不应该这样做(或者为什么这不是问题)?

我见过其他解释说 setup.py 用于安装您的软件包,而requirements.txt 用于设置您的环境。但我看不出有什么区别 - 依赖关系是相同的,并且永远如此。如果我需要一组不同的包,例如用于开发的额外测试包,我可以在 setup.py 的 extras_require 部分中单独指定。

编辑:我明白 setup.py 和requirements.txt 的两个不同角色是什么,我的问题是为什么两者需要独立而不是共享两者之间的公共依赖关系列表?

python pip

5
推荐指数
0
解决办法
670
查看次数