0

我正在关注https://github.com/jazzband/pip-tools#without-setuppy文档中的without setup.py示例pip-tools

我所做的是我有这个作为我的requirements.in

# To update requirements.txt, run:
#
#    pip-compile requirements.in
#
# To install in localhost, run:
#
#    pip-sync requirements.txt
#

django==3.2.5  # https://www.djangoproject.com/

psycopg2-binary==2.8.6 # https://github.com/psycopg/psycopg2

然后我将其作为 prod-requirements.in

# To update prod-requirements.txt, run:
#
#    pip-compile prod-requirements.in
#
# To install in prod, run:
#
#    pip-sync requirements.txt prod-requirements.txt
#

-c requirements.txt

gunicorn==20.1.0  # https://github.com/benoitc/gunicorn

在我运行的生产中

$ pip-sync requirements.txt prod-requirements.txt

我的问题是如何强制执行最低 python 版本?我只想设置到次要的python版本。例如,我想要一种固定到 python 3.8 的方法。

我可以用 pip-tools 做到这一点吗?我需要选择 setup.py 方法吗?

我更喜欢只使用 requirements.in 方法,因为我最熟悉它

4

1 回答 1

1

据我所知,您不能通过requirements.txtfile指定对 Python 解释器版本的约束。

其他工具允许在 Python 解释器上指定版本说明符。

例如,通过我所知道的所有 Python 打包构建后端都支持的Requires-Python打包核心元数据字段,包括通过其参数的setuptoolspython_requires以及flithatchpdm诗歌等等。其中一些依赖于(新的)PEP 621标准及其requires-python领域

您也可以查看pipenv,如果您对真正“打包”您的应用程序不感兴趣(即您不打算构建轮子并将其上传到像 PyPI 这样的包索引服务器),这可能会很好。

于 2022-01-29T14:51:28.513 回答