私はいくつかのモジュールGUI
(グラフィカルインターフェイスを説明しています)を作成しています。これには別のモジュールsomecalc
(計算しています)が必要です。後者の輸入標準ライブラリ:os
、sys
、time
など他のサブモジュールをインポートして標準ライブラリを無視する
客観最後に、パッケージを構築することです。
私はパッケージおよび/または他の自己開発したモジュール内の他のサブモジュールをインポートに関する規則見つけることができません:(Ipythonにし、自動補完)名前空間を乱雑にすることなく、
を:
- 私が見たいと思っていません
somecalc.os
、somecalc.sys
、somecalc.time
すでに私は
- 私が見たいと思っていません
- にインポートされた標準ライブラリを再インポートすることなく
は、私は同じことを行うための2つの方法があります。私は
GUI
内で次のテストを行う場合:somecalc.os is os #TRUE
(somecalc.py
でimport os
付き)somecalc._os is os #TRUE
標準ライブラリに面倒な呼び出しなし(
somecalc.py
でimport os as _os
とIPythonからノー自動補完)、例えばsomecalc.os.listdir
と書くと、os.listdir
と書くことができます。他にも、他の開発者が私と一緒にプロジェクトに取り組むかどうかは分かりません。
somecalc.py
で
import os as _os
を足すことで、問題の#1を固定した場合でも
somecalc
私はかつて私は、私はすべての私の輸入品との__init__.py
ファイルを追加することをお勧めしていますパッケージに私のフォルダを有効にすることを知っています。しかし、サブモジュールを開発/デバッグするときに(if __name__ = '__main__'
のコードを使用)、ルートディレクトリの__init__.py
ファイルは無視されます。私はまだGUI.py
ファイルの先頭にimport somecalc
と書く必要があります。
慣例は何ですか?
あなたの解決策は、私はGUIからの標準ライブラリにアクセスすることができ、またはそれ以上の面倒ではありませんがway:今、somecalc.os.listdirはsomecalc.somecalc.os.listdirになりました。 – Wli
'import sys'を使って標準のlibrairiesにアクセスしますか?何が問題ですか ? – Cyrbil
私は、これがコンベンションに求めている理由はわかりません。 モジュール "x"がすでにサブモジュール "sm"にインポートされていても、 "sm"をインポートしているすべてのモジュールで毎回 "x"をインポートする必要があります。 ダウンロードしたモジュールの下に標準ライブラリが見つかりませんでしたので、これは奇妙なものです。 – Wli