問題タブ [relative-import]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 3 を使用して、Jupyter Notebook で相対インポートを使用して、別のディレクトリに格納されているモジュールからローカル関数をインポートします。
次のようなディレクトリ構造があります
notebook.jpynb
相対インポートを使用して関数function()
にアクセスしようとすると、次のように作業しますmodule.py
。
次のエラーが表示されます。
相対インポートを使用してこれを機能させる方法はありますか?
ノートブック サーバーはmeta_project
ディレクトリのレベルでインスタンス化されるため、これらのファイル内の情報にアクセスできる必要があります。
また、少なくとも元々意図project1
されていたのはモジュールとは見なされていなかったため、__init__.py
ファイルがなく、ファイルシステムディレクトリとして意図されていたことに注意してください。問題の解決策として、それをモジュールとして扱い、__init__.py
ファイル (空のファイルでも) を含める必要がある場合は問題ありませんが、それだけでは問題を解決するには不十分です。
私はこのディレクトリをマシン間で共有し、相対インポートによりどこでも同じコードを使用できます。また、迅速なプロトタイピングにノートブックをよく使用するため、絶対パスを一緒にハッキングすることを含む提案は役に立たない可能性があります。
編集: これは、Python 3 の相対インポートとは異なります。これは、Python 3の相対インポートについて一般的に説明しており、特に、パッケージ ディレクトリ内からスクリプトを実行することについて説明しています。これは、異なる一般的側面と特定の側面の両方を持つ別のディレクトリのローカル モジュールで関数を呼び出そうとする jupyter ノートブック内での作業に関係しています。
python - python -mを実行せずに相対インポートを使用するには?
このようなフォルダがあります
そして、このように親戚のインポートを使用test1
したいtest2
開発中test1
、またはtest2
IDLE にいる間にこれらのインポートが機能するようにしたい場合、つまり、そのF5
中で作業中に押すと、たとえばtest2
やりたくないので、すべて正常に機能python -m test_mod.sub_mod.test2
します。
私はすでにこのpython-relative-imports-for-the-billionth-timeをチェックして います
それを見て、私はこれを試しました:
しかし、それは機能しませんでした。次のエラーが発生しました。
python - スクリプトの絶対インポートと相対インポート
この質問が頻繁に寄せられることは承知していますが、インポートに関して非常に具体的な問題があります。次のようなファイル構造があります。
基本的に、ここで起こっていることは、私のプログラム ( main.py
) がいくつかの小さなスクリプト ( ) を作成し、temp/
それらを実行しようとすることです。ただし、これらのスクリプトはそれぞれ と を参照lib/instructions.py
しdevice/android.py
ます。このコードは、次のファイルを実行します。
すべてのディレクトリに__init__.py
ファイルがありますが、これらのファイルはスクリプトであるため、相対インポートを使用できません。これらのライブラリをインポートするにはどうすればよいですか?
python - 別のスクリプトで Python モジュールをインポートする
同様の質問が何度も寄せられていますが、まだ解決策が見つかりません。次のような構造の Python プロジェクトがあります (簡易版)。
問題は、インポートmodule1
することmyscript.py
です。sys.path.append(os.path.join(os.path.dirname(sys.argv[0]), '..'))
これまでのところ、の上に書いてきましたmyscript.py
が、これはあまりエレガントではなく、プロジェクトから別のフォルダーにあるスクリプトにモジュールを簡単にインポートできる、私のプロジェクトに最適な構造は何でしょうか。
python - Python の相対/絶対インポート (再度)
このトピックは何度か取り上げられていますが、まだパッケージを動作させることができません。状況は次のとおりです。logging
モジュールがログの設定を処理するパッケージを持っています。明らかに、標準ライブラリのmypackage.logging
Python と競合します。logging
ディレクトリの構造:
mypackage.__init__
mypackage.logging
script.py
最後に、これは私が得ているエラーメッセージです:
最後に、標準ライブラリの前mypackage.__init.py__
にインポートすると機能することに気付きました。Python PEP8の推奨事項に反しているため、私はそれをしたくありません:mypackage.logging
logging
インポートは次の順序でグループ化する必要があります。
- 標準ライブラリのインポート
- 関連する第三者輸入
- ローカル アプリケーション/ライブラリ固有のインポート
どんな助けでも大歓迎です。
ベン。
PS私はPython 3.5.1を使用しています。
python - 兄弟ディレクトリからの Python クラスのインポート
私のディレクトリ構造/VM/repo/project
は次のとおりです。
getSomething.py
プロジェクト.py
db.py
走ろうとすると
エラーが発生します
トレースバック (最後の最後の呼び出し):
ファイル "scripts/getSomething.py"、4 行目、< モジュール >
から ..classes インポート プロジェクト
ValueError: Attempted relative import in non-package
ここで何が欠けていますか?