私はPythonのインポートのためのシンボリックリンクをエミュレートする方法を探しています。私は、ファイルを複製することなく、その場で次のフォルダ構造を解凍できるようにしたいと思います:Pythonのインポートをどのように透過的にリダイレクトできますか?
root
├─ python_lib
│ └─ my_utils
│ ├─ __init__.py
│ └─ etc.py
├─ app1
├─ app2
└─ app3
├─ lib
│ ├─ __init__.py
│ └─ my_utils.py
└─ run.py
app3/run.py
はこれを含んでいます
from lib.my_utils import etc
etc.pancakes()
私はに位置etc
を使用するコードが欲しいですpython_lib/my_utils/
。 app3/lib/my_utils.py
に置くことができるものはありますか?そのため、Python> = 3.1が(相対パスと..
を使用して)python_lib/my_utils/
フォルダを透過的にインポートし、サブパッケージも機能しますか?
インポート場所はすでにそれまでに解決されているので、my_utils.py' 'に置く場合、これは動作しないでしょう。これをメインコードの前に実行すると、 'my_utils'の各サブパッケージがPythonのトップレベルに表示され、' my_utils'内の相対インポートが機能しないため、まだ動作しません。 – zildjohn01
私は通常、 'run'スクリプトからパスを設定します。さもなければそれはあまり意味をなさない。 'PYTHONPATH'環境変数で遊んでみることもできます。詳細はこちらhttp://docs.python.org/tutorial/modules.html#the-module-search-path – Elalfer