我看到越来越多的命令是这样的:
$ pip install "splinter[django]"
这些方括号有什么作用?
Answers:
您使用的语法是:
pip install "project[extra]"
就您而言,您就是installing
对splinter
的新增支持的软件包django
。方括号([]
)不是特定的语法,只是约定。确实,您正在安装名为的软件包"splinter[django]"
。
来自的解释@chetner
:
该命令
pip install splinter django
将安装两个名为splinter
和的软件包django
。splinter[django]
,另一方面,安装的一个变体splinter
,其包含包支持对django
。请注意,它与django
程序包本身无关,只是splinter
程序包为启用的特定功能集定义的字符串。
extra
意思?
splinter
和的软件包django
。splinter[django]
另一方面,会安装该splinter
软件包的变体,其中包含对的支持django
。请注意,它与django
程序包本身无关,只是splinter
程序包为启用的特定功能集定义的字符串。
splinter
仍然是包裹名称;pip
本身将其解析splinter[django]
并识别为包名称,并带有一个额外的“参数”以帮助其安装正确的文件。参数django
的解释方式完全取决于setup.py
用于定义包的文件(或其他一些配置文件?我实际上不知道详细信息)splinter
。
pip install splinter
将安装的需求少于pip install splinter[django]
。实际上,已安装的其他软件包可以(也可能确实)启用了splinter的附加功能,但不会更改splinter软件包本身的任何内容。它只是告诉pip有关其他依赖项的信息。
[optional]
PIP中的括号表示可选依赖项以防万一其他开发人员希望在自己的Python包部署中实现此模式,这里对brackets []
in pip进行了进一步说明。
要从pip安装airflow
,请使用以下命令:
pip install 'apache-airflow'
您可以使用以下方法安装气流的可选组件:
pip install 'apache-airflow[aws]'
# [optional] -----------^
当我们搜索 pypi时,apache-airflow
请注意可选软件包不会显示:
pip search 'apache-airflow'
apache-airflow (1.10.9) - Programmatically author, schedule and monitor data pipelines
pylint-airflow (0.1.0a1) - A Pylint plugin to lint Apache Airflow code.
swe-airflow-tools (0.0.3) - Tools for Apache Airflow Application
airflow (0.6) - Placeholder for the old Airflow package
...
setup.py
您可以在setup.py
脚本中
的左侧看到setup.py
-extras_require
定义的方式。
右侧是这些可选子软件包的相关安装命令。
可以肯定的是,这些是setuptools的附加功能:
有时,项目具有“推荐”依赖关系,而并非所有项目使用都需要。例如,如果安装了ReportLab,则一个项目可能提供可选的PDF输出,如果安装了docutils,则一个项目可能提供reStructuredText支持。这些可选功能称为“额外” ...