Pipenvは、Pipfileが存在するディレクトリでのみ機能するようです。多分私はそれが設計されていない方法でそれを使用しようとしています。
たとえば、「leo」(エディタ)というツールをインストールしたところ、多くのフォルダに移動してpipenv run Leo
すると、別の仮想環境のインストールが開始されます。回避策は何ですか?
次を実行できます:(任意のディレクトリから)
pew workon my-virtualenv-of-choice
pipenv run leo
私が理解している限り、pipenvで既に仮想環境を実行している場合は、pipenvでテキストエディターを実行するようなコマンドしか実行できません。そうでない場合は、現在のディレクトリに新しい仮想環境を作成し、その中でコマンドを実行します。
結果として pipenv --help
は、実行コマンドについて次のように述べています。
virtualenvにインストールされているコマンドを実行します。
あなたの質問に対する直接の答えではありませんが、別のディレクトリからコンソールアプリを実行する問題にも遭遇しました。これが最良の/「最も移植性のある」ソリューションであるかどうかはわかりませんが、中間体としてbashスクリプトを使用することに満足している場合:
#!/usr/bin/env bash
CURRENT="$(dirname "$0")"
ROOT_DIR="$CURRENT/.."
(cd $ROOT_DIR && pipenv run python3 app/console.py "$@")
私のプロジェクトのディレクトリ構造は次のようになります:
.
├── Pipfile
├── Pipfile.lock
├── app
│ ├── __init__.py
│ └── console.py
└── bin
└── console
そして今、あなたは/absolute/path/to/bin/console
どこからでも。
Pipfileが存在するディレクトリで、
pipenv --venv
これにより、仮想環境が配置されているパスが表示されます。 /Users/yourname/.local/share/virtualenvs/yourproject-8XhejQjj
などのそのパスをコピーします。他のフォルダでは、source
を使用してvenvをアクティブ化できます。例:
source /Users/yourname/.local/share/virtualenvs/yourproject-8XhejQjj/bin/activate
これは Ken Reitzの2018 PyDataトーク でカバーされています。
はい、PipenvはPipfileがあるディレクトリ(またはそのサブディレクトリ)でのみ機能します。
Pythonプログラムを独自の仮想環境にインストールする方法が必要な場合でも、どこでもそれらを使用することができますが、 pipsi を使用できます–インストールが完了すると、 pipsi install <package>
を実行するだけで、Pythonパッケージを独自のvirtualenvにインストールできます。
(勇気がある場合、 my pipsiのフォーク には、いくつかの修正と改善があり、まだメインリポジトリに反映されていません。--src git+https://github.com/anowlcalledjosh/pipsi@develop#Egg=pipsi
を渡してインストールできます。 get-pipsi.py
スクリプト。)
これをグーグルするのは本当に難しいですが、私は最良の解決策を見つけました。
Pipenvを使用して任意の場所で仮想環境を簡単にアクティブ化するには、pewを使用できます。
pip install pewを実行すると、「pew workon myvenv」を簡単に実行できます。
Pewは内部でpipenvを使用しており、Windowsでも動作します。