[解決済み] Pythonで相対パスからインポートする
2022-06-17 12:37:38
質問
クライアントコード用のフォルダ、サーバーコード用のフォルダ、およびそれらの間で共有されるコード用のフォルダがあります。
Proj/
Client/
Client.py
Server/
Server.py
Common/
__init__.py
Common.py
Server.pyとClient.pyからCommon.pyをインポートするにはどうしたらいいですか?
どのように解決するのですか?
EDIT 2014年11月(3年後)。
Python 2.6と3.xは適切な相対インポートをサポートしており、そこではハチャメチャなことをするのを避けることができます。 このメソッドで、あなたは自分が 相対 ではなく、相対インポートであることがわかります。 絶対的 インポートです。 この「...」は、私の上のディレクトリに移動してください、という意味です。
from ..Common import Common
注意点として、これは Python をモジュールとして実行する場合のみ動作します。 の外側で から、モジュールとして実行する場合のみです。 例えば
python -m Proj
オリジナルのハック方法
<ブロッククオートこの方法は、実際にパッケージを「インストール」しないような状況で、今でもよく使われます。 例えば、Django ユーザに人気があります。
sys.path (python がものをインポートするために参照するパスのリスト) に Common/ を追加することができます。
import sys, os
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'Common'))
import Common
os.path.dirname(__file__)
は、現在の Python ファイルがあるディレクトリを与えるだけで、そのディレクトリの 'Common/' に移動し、モジュールの 'Common' をインポートします。
関連
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] バイトを文字列に変換する
-
[解決済み] Python 3で「1000000000000000 in range(1000000000000001)」はなぜ速いのですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] 億の相対的輸入
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
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の非常に便利な2つのデコレーターを解説
-
Pythonコンテナのための組み込み汎用関数操作
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
PyQt5はユーザーログインGUIインターフェースとログイン後のジャンプを実装しています。
-
[解決済み】RuntimeWarning: 割り算で無効な値が発生しました。
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】Python Error: "ValueError: need more than 1 value to unpack" (バリューエラー:解凍に1つ以上の値が必要です
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac
-
[解決済み】 TypeError: += でサポートされていないオペランド型: 'int' および 'list' です。
-
[解決済み] Pythonで相対インポートを行うには?