首页 > 解决方案 > 只允许从 python3 上下文执行 requirements.txt

问题描述

从 requirements.txt 安装时,如下所示:

pip install -r requirements.txt

我只想限制在 Python3 的上下文中。如果从 Python2 上下文尝试,它应该会抛出一个错误。

我怎样才能完成上述工作?

标签: pythonpython-3.xpip

解决方案


将您的项目转换为适当的包,并使用该python_requires字符串。如果您想绝对确定(即确保旧版本pip也不会在 Python 2 下运行),请在调用setup.py之前包含类似这样的内容setup

from setuptools import setup
import sys

if sys.version_info < (3,):
    raise RuntimeError('unsupported python version')

setup(...

自然地,在 中声明所有依赖项,setup.py以便其他依赖于此的包可以获取它们,而不必依赖单独的文件。

如果您仍想使用requirements.txt,请将其添加到以下内容:

-e .

这将触发您的软件包被安装,因此setup.py应该被调用,然后将引发应该中止安装的异常。


推荐阅读