Python setup.py 中的否定 extra_requires
Negative extra_requires in Python setup.py
我想制作一个 Python 包,默认情况下安装依赖项,除非用户特别表示他们不想要那个。
示例:
pip install package[no-django]
当前的 pip 和 setup.py 机制是否提供了执行此操作的方法,或者不需要每次都明确 extra_requires
?
我认为这是不可能的。解决它的方法是做一个正常的额外要求...... where
install_require=[
# ...
# no django listed here
],
extras_require={
'django': ['django'],
}
并在需要安装 django 的任何地方使用 package[django]
安装。
这是一个可能的解决方案。它不使用 extras_require
,但除此之外它满足所有规定的要求。使用下面的 setup.py
文件,您可以按如下方式安装:
# Regular installation
pip install package
# Installation without django
NODJANGO=1
pip install package
setup.py
文件:
import os
from setuptools import setup
install_requires_without_django = [...]
setup(
...
install_requires=install_requires_without_django + ([] if os.getenv('NODJANGO', False) else ['django']),,
...
)
我想制作一个 Python 包,默认情况下安装依赖项,除非用户特别表示他们不想要那个。
示例:
pip install package[no-django]
当前的 pip 和 setup.py 机制是否提供了执行此操作的方法,或者不需要每次都明确 extra_requires
?
我认为这是不可能的。解决它的方法是做一个正常的额外要求...... where
install_require=[
# ...
# no django listed here
],
extras_require={
'django': ['django'],
}
并在需要安装 django 的任何地方使用 package[django]
安装。
这是一个可能的解决方案。它不使用 extras_require
,但除此之外它满足所有规定的要求。使用下面的 setup.py
文件,您可以按如下方式安装:
# Regular installation
pip install package
# Installation without django
NODJANGO=1
pip install package
setup.py
文件:
import os
from setuptools import setup
install_requires_without_django = [...]
setup(
...
install_requires=install_requires_without_django + ([] if os.getenv('NODJANGO', False) else ['django']),,
...
)