我有一个python/django应用程序。
我确实有这样的requirements.txt,requirements_dev.txt和setup.py:
requirements.txt
a_package_from_our_pypi_server
django~=2.2.3
django-filter
djangorestframework~=3.10.1
django-restql==0.13.1
requests==2.24.0
Pillow~=8.2requirements_dev.txt
-r requirements.txt
coverage==5.2.1
factory-boy==3.2.0
# Syntax and style checkers
black==20.8b1
isort==5.8.0
pre-commit==2.12.1setup.py
#!/usr/bin/env python
from setuptools import find_packages, setup
import mypackage
requirements = open('requirements.txt').readlines()
setup(
name='mypackage',
install_requires=requirements,
. . . a lot of other parameters
)setup.py中的install_requires中需要哪些包版本?如何在requirements.txt?和
install_requires我遇到的问题是,这个包是一个API,所以我确实有一些需要安装的包,而不是像我在很多包中看到的那样,只有一两个包。这就是为什么我有install_requires=requirements in setup.py的原因。我想继续使用这样的实践,并且不需要在需求和设置上同步很多包。
发布于 2021-11-09 06:59:29
广告1)正如我已经提到的,你需要在毒理中使用各种因素。
特别是Django社区经常使用这一特性,例如:
https://github.com/jazzband/django-auditlog/blob/3dee9f1555239ae9c4a50afeaa487547247d2d96/tox.ini
下面是与毒理文档相关部分的链接:
https://tox.wiki/en/latest/config.html?highlight=factors#factors-and-factor-conditional-settings
为了在GitHub上测试这个矩阵,我建议使用这个tox插件。
https://github.com/ymyzk/tox-gh-actions
广告2)和广告3)关于setup.py和requirements.txt有很多混淆。其中一个原因是你需要区分你是有一个库还是一个应用程序。
应用程序应该始终与pip install -r requirements.txt一起安装,使用pip install library调用setup.py的库。
在install-requires中,您只输入依赖项的名称,而不是版本号,即
install_requires=["django", "django-filters", ...]
为了获得requirements.txt的确切版本号,您可以使用像pip-tools这样的工具来携带pip-compile。
使用pip-compile,您将生成一个具有所有直接和间接依赖项的requirements.txt。
您应该使用requirements.txt进行测试,并不时通过pip-compile对其进行更新。
https://stackoverflow.com/questions/69888445
复制相似问题