Python 3 の相対インポート
同じディレクトリ内の別のファイルから関数をインポートしようとする場合、from .mymodule import myfunction または from mymodule import myfunction を使用すると、エラーが発生します。その理由は、インポートされる関数を含むモジュールがパッケージ内にあるかどうかにあります。
相対インポートの使用
相対インポートは、モジュールがパッケージ内にある場合に機能します。パッケージを作成するには、モジュールが含まれるディレクトリに __init__.py ファイルが存在する必要があります。ただし、場合によってはモジュールをスクリプトとして実行できるようにすることも重要です。
コード構造
複数のモジュールとメイン スクリプトを含むパッケージの一般的なレイアウトは次のとおりです。以下:
- main.py
-
mypackage/
- __init__。 py
- mymodule.py
- myothermodule.py
内mymodule.py:
# Exported function def as_int(a): return int(a) # Test function for module def _test(): assert as_int('1') == 1 if __name__ == '__main__': _test()
myothermodule.py 内:
# Import exported function from the mymodule from .mymodule import as_int # Exported function def add(a, b): return as_int(a) + as_int(b) # Test function for module def _test(): assert add('1', '1') == 2 if __name__ == '__main__': _test()
main.py 内:
# Import exported function from myothermodule from mypackage.myothermodule import add def main(): print(add('1', '1')) if __name__ == '__main__': main()
コードの実行
main.py または mypackage/mymodule.py を実行すると、コードは問題なく実行されます。ただし、mypackage/myothermodule.py を実行しようとすると、使用された相対インポート (.mymodule import as_int から) に関連するエラーが発生します。
代替アプローチ
これに対処するには、2 つの代替アプローチがあります。 :
- 絶対インポートを使用: 相対インポートを置き換えます完全なモジュール パスを指定して絶対インポートを使用してインポートします: from mypackage.mymodule import as_int。ただし、これには、パッケージの親ディレクトリが PYTHONPATH に追加されている必要があります。
- -m オプションを使用します: モジュールが正しく実行されることを確認しながら絶対インポートの使用を回避するには、- を使用します。 Python の m オプション: python3 -m mypackage.myothermodule。この方法では、パッケージの親ディレクトリからコマンドを実行する必要があります。
以上がモジュールをスクリプトとして実行するときに、Python パッケージで相対インポートを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

pythonusesahybridmodelofcompilation andtertation:1)thepythoninterpretercompilessourcodeodeplatform-indopent bytecode.2)thepythonvirtualmachine(pvm)thenexecuteTesthisbytecode、balancingeaseoputhswithporformance。

pythonisbothintersedand compiled.1)it'scompiledtobytecode forportabalityacrossplatforms.2)bytecodeisthenは解釈され、開発を許可します。

loopsareideal whenyouwhenyouknumberofiterationsinadvance、foreleloopsarebetterforsituationsは、loopsaremoreedilaConditionismetを使用します

henthenumber ofiterationsisknown advanceの場合、dopendonacondition.1)forloopsareideal foriterating over for -for -for -saredaverseversives likelistorarrays.2)whileopsaresupasiable forsaresutable forscenarioswheretheloopcontinupcontinuspificcond

pythonisnotpurelyLepted; itusesahybridapproachofbytecodecodecodecodecodecodedruntimerttation.1)pythoncompilessourcodeintobytecode、whodythepythonvirtualmachine(pvm).2)

ToconcatenateListsinpythothesheElements、使用:1)Operatortokeepduplicates、2)asettoremoveduplicates、or3)listcomplunting for controloverduplicates、各メトドハスディフェルフェルフェントパフォーマンスアンドソーダーインプリテーション。

pythonisantertedlanguage、useaseofuseandflexibility-butfactingporformantationationsincriticalapplications.1)解釈されたlikepythonexecuteline-by-lineを解釈します

Useforloopswhenthenumberofiterationsisknowninadvance、andwhiloopswheniterationsdependonacondition.1)forloopsareidealforsecenceslikelistoranges.2)


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Dreamweaver Mac版
ビジュアル Web 開発ツール

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

WebStorm Mac版
便利なJavaScript開発ツール
