- 私は、日常業務用のpython スクリプトのコレクションに取り組んでいます。
- 重複を避けるために、インポートを利用していくつかのツールを共有したいと考えています。
- を保持するために
repository maintainable
、特定の目的のためにスクリプトを収集するためのサブフォルダーとlib-folder
、共有機能を保持するための各サブフォルダー内の があります。
構造はこんな感じ。
root
├── lib
│ ├── hello.py
└── sub
├── hello_user.py
└── lib
__init__.py files exist, but are filtered for better readability
hello_user.py のコードは次のとおりです。
from lib.hello import hello
hello()
そしてhello.pyで:
def hello():
print("Hello")
- PYTHONPATHは に設定されてい
root folder
ます。 - 「python sub/hello_user.py」を実行しようとすると、「ImportError: No module named hello」というエラーが表示されます。sub/lib の名前を sub/lib_hide に変更すると、期待される出力 "Hello" が得られます。
- root/sub/ libではなくroot/libから Python をインポートするにはどうすればよいですか?
PYTHONPATH to "root/.."
と の設定importing "root.lib"
は機能しますが、おそらく実行可能なオプションではありません (スクリプトを使用するすべてのセットアップと既存のすべてのスクリプトで変更が必要になります)。- を変更するだけのソリューションをお勧めし
import statement
ます。relative path
相対パスは問題ありませんが、親フォルダーに名前を付けるにはどうすればよいですか? 「..」。lib.helloが機能しません。