PYTHONPATH環境変数にパスを追加しようとしていますが、これは特定のvirtualenv環境からのみ表示されます。
VirtualenvコマンドプロンプトでSET PYTHONPATH=...
を試しましたが、環境全体の変数を設定しました。
どうすればそれを達成できますか?
.pth
ファイルを使用 を使用すると、通常、PYTHONPATHで何もする必要がなくなります。 virtualenvのsite-packagesフォルダーに、.pth拡張子(任意のベース名が機能する)を持つファイルを置くだけです。 lib\python2.7\site-packages
。パッケージを唯一のコンテンツとして含むディレクトリへの絶対パス。
virtualenv
を使用している場合は、おそらく virtualenvwrapper も使用する必要があります。この場合は、 add2virtualenv コマンドを使用してPython現在のvirtualenvのパス:
add2virtualenv directory1 directory2 …
また、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を試して、パッケージをインポートします。
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を使用することを強くお勧めします
Virtualenvwrapperを使用している場合、
$ cd to the parent folder
$ add2virtualenv folder_to_add
コンソールが表示されます
Warning: Converting "folder_to_add" to "/absoutle/path/to/folder_to_add"
それで終わりです。