私はPythonで使用できるパッケージマネージャーを探していました。プロジェクトの依存関係をファイルにリストしたい。たとえば、rubyはバンドルインストールを使用できるGemfileを使用します。Pythonでこれをどのように達成できますか?
6 に答える
このpip
ツールは、Rubyの宝石に相当する標準になりつつあります。のようdistribute
に、依存関係を解決してダウンロードするためにPyPIパッケージリポジトリ(デフォルト)をpip
使用します。プロジェクトの依存関係を一覧表示するファイルから依存関係をインストールできます(慣例により呼び出されます)。pip
requirements.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
機能にリンクします。