私はPythonで使用できるパッケージマネージャーを探していました。プロジェクトの依存関係をファイルにリストしたい。たとえば、rubyはバンドルインストールを使用できるGemfileを使用します。Pythonでこれをどのように達成できますか?
6 に答える
このpipツールは、Rubyの宝石に相当する標準になりつつあります。のようdistributeに、依存関係を解決してダウンロードするためにPyPIパッケージリポジトリ(デフォルト)をpip使用します。プロジェクトの依存関係を一覧表示するファイルから依存関係をインストールできます(慣例により呼び出されます)。piprequirements.txt
pip install -r requirements.txt
pipを使用して、Pythonパス上の現在のパッケージを「フリーズ」することもできます。
pip freeze > requirements.txt
パッケージと組み合わせて使用するとvirtualenv、プロジェクトに必要な依存関係を持つプロジェクトPython環境を確実に作成できます。
Pipenv
(私はそれが古い質問であることを知っています、そしてそれはすでに答えを持っていますが、私のような別の答えを探してここに来る人のために。)
私はnpmに非常によく相当するものを見つけました。それはpipenvと呼ばれています。virtualenvとpipの両方の要件を同時に処理するため、npmに似ています。
シンプルなユースケース
pip install pipenv
次に、Pythonの第3バージョンで新しいvirtualenvを作成したり、プロジェクトの要件やその他のもので満たされるpipfileを作成したりできます。
pipenv install --three
作成したvirtualenvを使用する:
pipenv shell
新しいPythonパッケージのインストール:
pipenv install requests
.pyファイルの実行は次のようになります。
pipenv run python somefile.py
あなたはそれがここにドキュメントを見つけることができます。
Pythonはpipパッケージマネージャーに使用します。このpip installコマンドには-r <file>、指定された要件ファイルからパッケージをインストールするオプションがあります。
インストールコマンド:
pip install -r requirements.txt
内容例requirements.txt:
Foo >= 1.2
PickyThing <1.6,>1.9,!=1.9.6,<2.0a0,==2.4c1
SomethingWhoseVersionIDontCareAbout
形式の詳細については、ドキュメントの「要件の解析」セクションを参照してください:https ://pip.pypa.io/en/stable/user_guide/#requirements-files
pipこれが、のスコープを現在のプロジェクトに制限する方法です。またはでグローバルインストールを明示的に指定するNodeJSnpmまたはPHPから来ている場合は、逆のように感じます。composer-g--global
まだインストールしていない場合はvirtualenv、次のコマンドを使用してグローバルにインストールします。
pip install virtualenv
各Pythonプロジェクトには、独自のvirtualenvインストールが必要です。cdプロジェクトのルートに合わせて設定するのは簡単です。
python3 -m virtualenv env # creates env folder with everything you need
virtualenvをアクティブにします。
source env/bin/activate
これで、との相互作用はすべてpipプロジェクト内に含まれます。
pip install package_name==version依存関係ごとに実行します。それらはにインストールされます./env/lib/python3.x/site-packages/
プロジェクトの依存関係をファイルに保存する場合は、次のコマンドを実行します。
pip freeze > requirements.txt
実際には必要ありません。-lまたは--local、アクティブ化されたプロジェクト固有のvirtualenv(必要な場合)を使用している場合。
ここで、から依存関係をインストールする場合はrequirements.txt、virtualenvを設定して、次のコマンドを実行します。
pip install -r requirements.txt
それで全部です。
pipenv対poetry対の比較は次のとおりです。httpspdm: //dev.to/frostming/a-review-pipenv-vs-poetry-vs-pdm-39b4
結論はそれが勝者です。pdm
しかし、私の経験では、IDEと統合するpoetryよりも簡単です。pdm
これは古い質問ですが、物事は常に進化しています。
についての他の答えに加えてpipenv。と呼ばれるPythonパッケージマネージャーもありますpoetry。
pipenvとここの詳細な比較がありpoertyます:npm、pip、pipenv、およびpoetryパッケージマネージャー間の機能比較。また、機能を一般的なnpm機能にリンクします。