[解決済み] Pythonでsys.pathを設定するのは何時ですか?
2023-07-08 17:52:39
質問
以下のコマンドを実行すると
import sys
print sys.path
を私のMac (Mac OS X 10.6.5, Python 2.6.1) で実行すると、次のような結果が得られます。
/Library/Python/2.6/site-packages/ply-3.3-py2.6.egg ... /Library/Python/2.6/site-packages/ipython-0.10.1-py2.6.egg /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.zip /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6 /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload /Library/Python/2.6/site-packages /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/PyObjC /System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/wx-2.8-mac-unicode
これらは5つのカテゴリに分類されています。
- /Library/Python/2.6/site-packages/*.egg
- /Library/Python/2.6/site-packages
- フレームワーク/Python.framework/バージョン/2.6/lib/python2.6
- フレームワーク/Python.framework/バージョン/2.6/Extras/lib/python
- 環境変数PYTHONPATHからのPATH。
そして、私はコードを使ってさらにパスを追加することができます。
sys.path.insert(0, MORE_PATH)
- どのルーチンが、いつ、それらのパスを設定するのでしょうか。
- パスの一部はpythonのソースコードで構築されているのですか?
- sys.path.insert'で挿入されたパスは無視されるのでしょうか?mod_wsgi で、'sys.path.insert' でパスが見つからないことがあったので、気になります。私が尋ねたのは 別記事 に質問させていただきました。
追加
マイケルの回答を元に、site.pyを調べてみると、以下のようなコードが出てきました。
def addsitepackages(known_paths):
"""Add site-packages (and possibly site-python) to sys.path"""
sitedirs = []
seen = []
for prefix in PREFIXES:
if not prefix or prefix in seen:
continue
seen.append(prefix)
if sys.platform in ('os2emx', 'riscos'):
sitedirs.append(os.path.join(prefix, "Lib", "site-packages"))
elif sys.platform == 'darwin' and prefix == sys.prefix:
sitedirs.append(os.path.join("/Library/Python", sys.version[:3], "site-packages"))
また、site.pyがあるディレクトリ名(Macでは/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6)はPythonソースコードに組み込まれるべきかと思います。
どのように解決するのですか?
ほとんどのものは、Pythonの
site.py
で起動しない限り)インタープリタを起動するときに自動的にインポートされます。
-S
オプションで起動しない限り) インタープリタの起動時に自動的にインポートされます。初期化時にインタープリタ自身で設定されるパスはほとんどありません。
-S
).
さらに、いくつかのフレームワーク (Django のようなものだと思います) は
sys.path
を修正します。
は
site
モジュールは、かなり良い
ドキュメント
があり、コメント付きの
ソースコード
で実行すると、いくつかの情報を出力します。
python -m site
.
関連
-
[解決済み】ImportError: xgboost という名前のモジュールがない
-
[解決済み] Pythonのリストメソッドであるappendとextendの違いは何ですか?
-
[解決済み】__str__と__repr__の違いは何ですか?
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] Django Rest Framework ファイルアップロード
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] pandasのタイムゾーンに対応したDateTimeIndexを、特定のタイムゾーンに対応したナイーブなタイムスタンプに変換する。
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] オブジェクトのリストに特定の属性値を持つオブジェクトが含まれているかどうかをチェックする
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] Flaskで非同期タスクを作る
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] Django filter queryset __in for *every* item in list
-
[解決済み] 認証プラグイン 'caching_sha2_password' はサポートされていません。
-
[解決済み] pipの依存性/必要条件をリストアップする方法はありますか?
-
[解決済み] Pythonのsys.pathはどこから初期化されるのですか?