/ etc/profileと環境変数で設定する方法を知っています。
しかし、スクリプト中に設定したい場合はどうでしょうか?それはos、sysをインポートしていますか?どうすればいいのですか?
PYTHONPATH
を設定せず、エントリを sys.path
に追加します。これは、Pythonパッケージを検索する必要があるディレクトリのリストです。したがって、そのリストにディレクトリを追加するだけです。
sys.path.append('/path/to/whatever')
実際、sys.path
は、パス区切り文字(Linuxのようなシステムでは:
、Windowsでは;
)でPYTHONPATH
の値を分割することにより初期化されます。
site.addsitedir
を使用してディレクトリを追加することもできます。このメソッドは、渡すディレクトリ内に存在する.pth
ファイルも考慮します。 (PYTHONPATH
で指定するディレクトリには当てはまりません。)
os.environ
を介して環境変数を取得および設定できます。
import os
user_home = os.environ["HOME"]
os.environ["PYTHONPATH"] = "..."
ただし、インタープリターは既に実行されているため、これは効果がありません。使用したほうがいい
import sys
sys.path.append("...")
これは、PYTHONPATH
がインタープリターの起動時に変換される配列です。
質問を再開して申し訳ありませんが、誰かを助けることができると思います:
sys.path.append('dir/to/path')
を追加せずに追加すると、既に追加されている場合、sys.path
に長いリストを生成できます。そのために、私はこれをお勧めします:
import sys
import os # if you want this directory
try:
sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
sys.path.append('/dir/path') # Or os.getcwd() for this directory
誰かが質問を再開するのがいらいらしてすみません。
PYTHONPATHは sys.path になります。これは実行時に変更できます。
import sys
sys.path += ["whatever"]
os.environ['PATHPYTHON']=/some/path
でPYTHONPATH
を設定し、os.system('python')
を呼び出してpythonシェルを再起動して、新しく追加したパスを有効にする必要があります。