我有一个 Python 应用程序(不是库),我想将其发布为
pip
可安装包。为了使应用程序现在、一个月或 2 年内使用 pip install
可预测地安装和运行,我想固定所有依赖项,例如使用 pip-tools
目前我的包裹有3个文件:
requirements.in
:列出直接的应用程序依赖项。没有或松散的版本固定。 pip-compile
.requirements.txt
:所有依赖项的完整锁文件(也是可传递的)用pip-compile
从requirements.in
生成。 requirements.txt
文件不是 Python wheel 的一部分,所以 pip install
不能使用它。setup.py
:在 install_requires
中,我阅读了已编译的 requirements.txt
,以便完整的、固定的依赖项在 pip install
的轮子元数据中找到它们的方式。 (例子见下):# setup.py
setup(
...
# pseudocode
"install_requires": pip.parse(Path(".")/"requirements.txt")
...
)
requirements.txt
中动态读取的方法如何转化为带有 pyproject.toml
的现代声明式方法?或者不是,而不是自动化,我需要在 requirements.txt
依赖项部分手动复制编译的 pyproject.toml
内容?