web-dev-qa-db-ja.com

requirements.txtで相対パスを使用して、pipでtar.gzファイルをインストールします

必要なすべての外部モジュールを格納するためにrequirements.txtファイルを使用しています。 1つを除くすべてのモジュールがインターネットから収集されます。もう1つは、requirements.txtファイルを保持するフォルダーの下のフォルダーに保存されます。

ところで、このモジュールはpip installで簡単にインストールできます

私はこれを使ってみました:

file:folder/module

またはこれ:

file:./folder/module

またはこれさえ:

folder/module

しかし常にエラーを投げます。これを行う正しい方法が誰か知っていますか?

ありがとう

24
F.D.F.

現在のバージョンのpip(1.2.1)では、要件ファイル内の相対パスが解釈される方法があいまいで、半ば壊れています。 pipリポジトリには未解決の問題があり、さまざまな問題とあいまいさを詳細に説明しています。

https://github.com/pypa/pip/issues/328

要するに、現在の実装はpipのドキュメントの説明と一致していません。そのため、この記事の執筆時点では、requirements.txtで相対パスを使用するための一貫した信頼できる方法はありません。

それは言った、以下を私のrequirements.txtに入れます:

./foo/bar/mymodule

mymoduleディレクトリの最上位にsetup.pyがある場合に機能します。 file::プロトコル指定がないこと、および先頭の./が含まれていることに注意してください。このパスはrequirements.txtファイルからの相対パスではなく、現在の作業ディレクトリからの相対パスです。したがって、requirements.txtと同じディレクトリに移動して、次のコマンドを実行する必要があります。

pip install -r requirements.txt
30
finn

現在の作業ディレクトリ(必要に応じてos.getcwd()で検索)と、要件ファイルで指定した相対パスに基づいています。

要件ファイルは次のようになります。

fabric==1.13.1
./some_fir/some_package.whl
packaging==16.8

これは.exeではなく.whlファイルに対してのみ機能することに注意してください

エラーがないか、pip installの出力に注意してください。

3
frage