web-dev-qa-db-ja.com

virtualenvでPYTHONPATHにパスを追加する方法

PYTHONPATH環境変数にパスを追加しようとしていますが、これは特定のvirtualenv環境からのみ表示されます。

VirtualenvコマンドプロンプトでSET PYTHONPATH=...を試しましたが、環境全体の変数を設定しました。

どうすればそれを達成できますか?

92
Flavien

.pthファイルを使用 を使用すると、通常、PYTHONPATHで何もする必要がなくなります。 virtualenvのsite-packagesフォルダーに、.pth拡張子(任意のベース名が機能する)を持つファイルを置くだけです。 lib\python2.7\site-packages。パッケージを唯一のコンテンツとして含むディレクトリへの絶対パス。

144
Dougal

virtualenvを使用している場合は、おそらく virtualenvwrapper も使用する必要があります。この場合は、 add2virtualenv コマンドを使用してPython現在のvirtualenvのパス:

add2virtualenv directory1 directory2 …

90
crimeminister

また、virtualenvの1つにシンボリックリンクを配置することもできます。

例えば。 1)virtualenvをアクティブにします2)pythonを実行します3)sysをインポートしてsys.pathを確認します4)そこにpython検索パスがあります。それらのいずれか(たとえば、site-packages)を選択します。5)そこに行き、次のようなパッケージへのシンボリックリンクを作成します。ln -sインポートするパッケージ名へのパス

そうすれば、virtualenvをアクティブにしなくてもインポートできるはずです。 path-to-your-virtualenv-folder/bin/pythonを試して、パッケージをインポートします。

4
Slavko-t
import sys
import os

print(str(sys.path))

dir_path = os.path.dirname(os.path.realpath(__file__))
print("current working dir: %s" dir_path)

sys.path.insert(0, dir_path)

パスが乱雑になるのを避けるために、virtualenvとvirtualenvwrapperを使用することを強くお勧めします

0
Rubber Duck

Virtualenvwrapperを使用している場合、

$ cd to the parent folder
$ add2virtualenv  folder_to_add

コンソールが表示されます

Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"

それで終わりです。

0
Aneesh Panoli