質問

はPythonのsys.パスに初期化された。

UPD:Pythonは追加パスを前に参照PYTHONPATH:

    >>> import sys
    >>> from pprint import pprint as p
    >>> p(sys.path)
    ['',
     'C:\\Python25\\lib\\site-packages\\setuptools-0.6c9-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\orbited-0.7.8-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\morbid-0.8.6.1-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\demjson-1.4-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\stomper-0.2.2-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\uuid-1.30-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\stompservice-0.1.0-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\cherrypy-3.0.1-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\pyorbited-0.2.2-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\flup-1.0.1-py2.5.egg',
     'C:\\Python25\\lib\\site-packages\\wsgilog-0.1-py2.5.egg',
     'c:\\testdir',
     'C:\\Windows\\system32\\python25.zip',
     'C:\\Python25\\DLLs',
     'C:\\Python25\\lib',
     'C:\\Python25\\lib\\plat-win',
     'C:\\Python25\\lib\\lib-tk',
     'C:\\Python25',
     'C:\\Python25\\lib\\site-packages',
     'C:\\Python25\\lib\\site-packages\\PIL',
     'C:\\Python25\\lib\\site-packages\\win32',
     'C:\\Python25\\lib\\site-packages\\win32\\lib',
     'C:\\Python25\\lib\\site-packages\\Pythonwin']

私PYTHONPATHには:

    PYTHONPATH=c:\testdir

といったところだろうかそのパス前PYTHONPATHのものから来るのでしょうか?

役に立ちましたか?

解決

"初期化されからの環境変数PYTHONPATH、インストールに依存するデフォルト"

-- http://docs.python.org/library/sys.html#sys.path

他のヒント

Python思うハードトセット sys.path.どのようで 設定できる 本当に 複雑な.以下のガイドが、水をやり、 少し-不完全で、やや違いが、願わく-有用ガイド の一般ファイルのpythonプログラマのどのようなときにpython 図うとして使用 初期値sys.path, sys.executable, sys.exec_prefix, は、 sys.prefix a 通常の python設置できます。

第一に、pythonはそのレベルをしながらその実体 場所にファイルシステムのベースに営業システムか ます。の場合はOSでは"python"エネルギープラントが稼働できるようにするためのlibsoupおよそのものに$る。で解決いたしま象徴的なリンクになります。一度このパス 実行ができるようにするためのlibsoupおよ用の値として sys.executable, は、if、 ands、buts.

次に、その決定の初期値 sys.exec_prefixsys.prefix.

がある場合はファイルと呼ばれ pyvenv.cfg 同じディレクトリとして sys.executable またはディレクトリは、pythonに見えます。異なる Osいものはこのファイルです。

の値はこの設定ファイルとpythonの見が の設定オプション home = <DIRECTORY>.Pythonでは、このディレクトリの代わりにディレクトリを含む sys.executable 時に動的にセットの初期値 sys.prefix ます。の場合 applocal = true 設定が表示される pyvenv.cfg Windows上のファイルではなく、 home = <DIRECTORY> 設定 その sys.prefix 設定できるディレクトリを含む sys.executable.

次に、 PYTHONHOME 環境変数であることを示唆している。Linux,Mac sys.prefixsys.exec_prefix 設定の PYTHONHOME 環境変数の場合 存在する superseding 他の home = <DIRECTORY> 設定 pyvenv.cfg.Windows sys.prefixsys.exec_prefix 設定さ PYTHONHOME 環境変数 がある場合はその ない限り a home = <DIRECTORY> 設定に存在 pyvenv.cfg, ができるようにしております。

その他、これらの sys.prefixsys.exec_prefix から徒歩後退 の場所から sys.executable, 又は home ディレクトリによる pyvenv.cfg のばかりでした。

の場合はファイル lib/python<version>/dyn-load はディレクトリ または当行の親ディレクトリ、そのディレクトリが設定される sys.exec_prefix LinuxまたはMacです。の場合はファイル lib/python<version>/os.py では、ディレクトリまたはその サブディレクトリ、そのディレクトリに設定する sys.prefix Linux Mac、Windowsでは、 sys.exec_prefix 同じ値に設定して sys.prefix Windows上でしか利用できません。この全体のステップを飛Windowsの場合 applocal = true を設定します。のいずれかのディレクトリ sys.executable は 利用の場合 home 設定 pyvenv.cfg, 使用するものではなく の初期値 sys.prefix.

ばんこう"のランドマーク"のファイル sys.prefix れていない ただ、そのpython設定 sys.prefix る"フォールバック" 値とします。Linux、Mac、例えば、使用前のコンパイルされたデフォルトとしての 価値観 sys.prefixsys.exec_prefix.Windows待ち まで sys.path 完全に把握し設定フォールバック値 sys.prefix.

その後、お住まいのお客様はお問い合わせもすべてが待ちに待った)pythonの決定の初期値 するに含まれる sys.path.

  1. ディレクトリのスクリプトをpythonで実行が追加され sys.path.Windowsでは、これは常に空文字列かpythonへ 軒のフルパスでのスクリプトがあります。
  2. の内容PYTHONPATHの環境変数の設定した場合、 sys.path, ない限り い Windowsでは、 applocal がtrueに設定し pyvenv.cfg.
  3. Zipファイルのパスである <prefix>/lib/python35.zip Linux/Macと os.path.join(os.dirname(sys.executable), "python.zip") Windowsでは、 sys.path.
  4. 場合は、Windowsとのない applocal = true 設定した pyvenv.cfg, その内容をsubkeysのレジストリキー HK_CURRENT_USER\Software\Python\PythonCore\<DLLVersion>\PythonPath\ 追加されます。
  5. 場合は、Windowsとのない applocal = true 設定した pyvenv.cfg, は、 sys.prefix が見つからなかった, その後、 主な内容 には、レジストリキー HK_CURRENT_USER\Software\Python\PythonCore\<DLLVersion>\PythonPath\ 追加がある場合はそれ;
  6. 場合は、Windowsとのない applocal = true 設定した pyvenv.cfg, その内容をsubkeysのレジストリキー HK_LOCAL_MACHINE\Software\Python\PythonCore\<DLLVersion>\PythonPath\ 追加されます。
  7. 場合は、Windowsとのない applocal = true 設定した pyvenv.cfg, は、 sys.prefix が見つからなかった, その後、 主な内容 には、レジストリキー HK_CURRENT_USER\Software\Python\PythonCore\<DLLVersion>\PythonPath\ 追加がある場合はそれ;
  8. の場合Windowsの場合、PYTHONPATHませんでしたセットでは、prefix見つかりませんでしたし、レジストリキーが存在し、その後の 相対的にコンパイル時の値PYTHONPATHを追加;それ以外の場合、このステップは無視されます。
  9. 経路のコンパイル時のマクロPYTHONPATHを追加への相対値で動的に見つかり sys.prefix.
  10. MacおよびLinuxの値 sys.exec_prefix が追加されます。Windows上のディレクトリ 使用された又はされてい使用に動的に検索のための sys.prefix は 追加されます。

この段階ではWindowsのない場合には接頭辞から明らかになった後pythonに努め 定めるのかということで検索 すべての のディレクトリ sys.path のランドマークのファイル そのためのディレクトリ sys.executable 前回までできるようにするためのlibsoupおよ。っていることを確認してください, sys.prefix は白紙になっています。

最後に、Pythonの負荷の site モジュールを加えるものなら sys.path:

から始める必要がありま構築へのさまざまな取り組みディレクトリからヘッドと テール。のヘッド部分を用い sys.prefixsys.exec_prefix;空のヘッドはスキップします。のテール部分を利用して空の文字列 その lib/site-packages (Windows)または lib/pythonX.Y/site-packages その lib/site-python (UnixやMac).それぞれの 異なるヘッド-テールの組み合わせを見ている既存の ディレクトリ、その場合、追加でsys.経路も検査の 追加パスの設定ファイルです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top