[解決済み] 同名のモジュールが存在する場合の組み込みライブラリからのインポート
2022-06-14 18:57:53
質問
状況 - 私のproject_folderにcalendarというモジュールがあります。 - Python ライブラリから組み込みの Calendar クラスを使用したいと思います。 - from calendar import Calendar を使用すると、私のモジュールからロードしようとしているため、文句を言われます。
私はいくつかの検索を行いましたが、私の問題に対する解決策を見つけることができないようです。
- 同じ名前のローカルモジュールがあるとき、Pythonの標準ライブラリモジュールにアクセスするにはどうすればよいですか?
- http://docs.python.org/whatsnew/2.5.html
- Pythonでモジュールをインポートするとき、常にモジュール名を書かないようにするにはどうしたらいいですか?
私のモジュールの名前を変更することなく、何かアイデアはありますか?
どのように解決するのですか?
認められた解決方法は、現在では非推奨のアプローチを含んでいます。
importlibのドキュメント はこちら は、python >= 3.5 のファイルパスから直接モジュールをロードする、より適切な方法の良い例を示しています。
import importlib.util
import sys
# For illustrative purposes.
import tokenize
file_path = tokenize.__file__ # returns "/path/to/tokenize.py"
module_name = tokenize.__name__ # returns "tokenize"
spec = importlib.util.spec_from_file_location(module_name, file_path)
module = importlib.util.module_from_spec(spec)
sys.modules[module_name] = module
spec.loader.exec_module(module)
つまり、パスから任意の .py ファイルをロードして、モジュール名を好きなように設定することができるのです。ですから、単に
module_name
を、インポート時にモジュールが持つようにしたい任意のカスタム名に調整します。
単一のファイルではなく、パッケージを読み込む。
file_path
はパッケージのルートへのパスでなければなりません。
__init__.py
関連
-
PythonによるLeNetネットワークモデルの学習と予測
-
[解決済み】ilocが「IndexError: single positional indexer is out-of-bounds」を出す。
-
[解決済み】ImportError: PILという名前のモジュールがない
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み] 最近のPythonでカスタム例外を宣言する適切な方法?
-
[解決済み] 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サンプルコード
-
Python機械学習Githubが8.9Kstarsに達したモデルインタープリタLIME
-
PythonでECDSAを実装する方法 知っていますか?
-
FacebookオープンソースワンストップサービスpythonのタイミングツールKats詳細
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】DataFrameのコンストラクタが正しく呼び出されない!エラー
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】 NameError: グローバル名 'xrange' は Python 3 で定義されていません。
-
[解決済み】終了コード -1073741515 (0xC0000135)でプロセス終了)