2016-04-27 27 views
2

私が書いているPythonパッケージのすべての要件を手動でインストールしたいと思います。この目的を達成するために、私は、ファイルrequirements.txtを作成し、依存関係を追加し、ラインごと:pip:依存関係の依存性をインストールする

$ pip install -r requirements.txt 

を実行している場合

$ cat requirements.txt 
meshio 
numpy 

これら二つのパッケージが無事にインストールされているが、私はmeshioの依存関係が上がらないことに気づきました't(すなわち、requirements.txtに記載されているもの)。驚くことではないが、ピップはどのように知っているはずですか?

pipを使用して依存関係ツリー全体をインストールするメカニズムはありますか?

答えて

2

が判明し、パッケージがないrequirements.txtで、setup.pysetup()の一環として

install_requires=[ 
    'numpy', 
    'pyyaml' 
    ], 

とその依存関係をリストする必要があります。

0

これが必要なのかどうかはわかりません。しかし、これが私がこの問題を解決する方法です。私は仮想環境を私のpythonプロジェクトごとに作成します。

cd my_project_folder 
virtualenv venv # choose the python interpreter you need ;) 
source venv/bin/activate 

次に、プロジェクトに必要なすべてのパッケージをインストールします。

pip install <what ever packages you need> 

あなたがrequirements.txtを作成する必要がある場合は、あなただけのdeactivateを入力し仮想環境を終了するには、このコマンド

pip freeze > requirements.txt # including the installed version of each package 

を使用することができます。これを詳細にもある

...これはあなたのお役に立てば幸いあなたはpip-tools、アカウントにすべての基礎となるの依存関係をとるrequirements.txtファイルを構築するために使用することができるのpythonパッケージにより興味がある可能性がありhere

4

を説明しました。それはピップ経由でインストールすることができます。

pip install --upgrade pip # pip-tools needs pip>=6. 
pip install pip-tools 

インストールしたら、あなたはあなたの要求ファイルを生成するpip-compileコマンドを使用することができます。たとえば、Flaskプロジェクトで作業しているとします。あなたは、次の操作を行う必要があります:

Flask 

実行pip-compile <your-file>

は、ファイルに次の行を書きます。すべての依存関係が固定されたrequirements.txtが生成されます。 pip-compileを再実行してパッケージを更新することができます。あなたの出力ファイルは、次のようになります。依存関係をインストールするために

# 
# This file is autogenerated by pip-compile 
# Make changes in requirements.in, then run this to update: 
# 
# pip-compile <your-file> 
# 
flask==0.10.1 
itsdangerous==0.24  # via flask 
jinja2==2.7.3    # via flask 
markupsafe==0.23   # via jinja2 
werkzeug==0.10.4   # via flask 
関連する問題