私はこのようなコマンドをますます見ています:
$ pip install "splinter[django]"
これらの角括弧は何をしますか?
私はこのようなコマンドをますます見ています:
$ pip install "splinter[django]"
これらの角括弧は何をしますか?
pip install "splinter[django]"
。
回答:
使用している構文は次のとおりです。
pip install "project[extra]"
あなたの場合、あなたはinstalling
のsplinter
サポートが追加されたパッケージですdjango
。角括弧([]
)は特定の構文ではなく、単なる慣例です。実際には、次の名前のパッケージをインストールしています"splinter[django]"
。
からの説明@chetner
:
このコマンド
pip install splinter django
はsplinter
、とという名前の2つのパッケージをインストールしますdjango
。splinter[django]
一方、バリアントのインストールsplinter
が含まれたパッケージのサポートのためにdjango
。これはdjango
パッケージ自体とは関係がなく、splinter
有効になる特定の機能セットに対してパッケージによって定義された文字列にすぎないことに注意してください。
extra
意味ですか?
splinter
、とという名前の2つのパッケージをインストールします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 []
でinpipの詳細な説明を示します。
pipairflow
からインストールするには、次のコマンドを使用します。
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をサポートする場合があります。これらのオプション機能は「エクストラ」と呼ばれます...
このオプションのパッケージ構文では、次のように複数のエクストラ(角かっこ内のコンマで区切る)が許可されていることを知っておく価値があります。
python -m pip install SomePackage[PDF,EPUB] # multiple extras
あたりとしてピップマニュアル