私はPythonフレームワークを開発しており、トップレベルのパッケージ(プロジェクト名)に基づいてインポートを行いたいと考えています。ユーザーはフレームワーク全体をコピーし、独自のモジュールを作成してフレームワークを使用します。Pythonでトップレベルパスを使用してインポートするには?
私の現在の構造は次のようになります。
myapp/
config.py
docs/
framework/
main.py
utils.py
file.py
lib/
some_module.py
unit_tests/
test_utils.py
私は次のようにlibとunit_testsでのpythonファイルに以下のインポートを使用することができるようにしたい:
from myapp.framework import utils
がありますこれを行う簡単な方法は?私はsys.path.append()ハックを試みたが、実際には動作しません。これを達成するための本当に無邪気な方法がある場合、私はそれを働かせるために余分な長さをつけても構いません。
編集:まあ私はsys.path.append()をもう一度試してみましたが、実際にはうまくいきますが、実際には洗練されたソリューションであり、別の方法があれば本当に聞きたいと思います。
ことに問題が何であるの名前を変更するのですか?これは標準パッケージであり、これはそのままで動作するはずですか?なぜsys.path.append()を使って何かしたいのですか?自分のsetup.pyで適切なPythonパッケージを作り、それを適切にインストールして展開し、他のパッケージと同じように使用してください。*あなたの* REAL *の問題はどこですか? –
'sys.path.append()'が動作しないのはなぜですか? –
@ire_and_curses - sys.path.append()がうまくいかない理由はわかりません。希望するインポートを実現できなかっただけです。しかし、私の研究から、パスに追加するのはお勧めできないようです。 – trinth