問題タブ [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 パッケージ: 相対インポート
私は、コアとコアを使用する複数の独立したモジュールで構成される Python アプリケーションに取り組んでいます。パッケージの相対インポートの設定に問題があります。
__init__.py
ファイルは空です。Python 2.7.1 を実行しています。
実行python main.py
結果はValueError: Attempted relative import in non-package
.
同様の質問: Python の相対インポートに対する究極の回答、Python で相対インポートを行う方法は? 、Python での相対インポート
助けてくれてありがとう。
python - パッケージ内のすべてのモジュールに内部からアクセスできるようにしますか?
Pythonパッケージは、その中の任意のモジュールですべてを可能にするようにどのように構成されていると想定されていますか?
私のファイル構造は次のとおりです。
main.py
すべてを初期化します。foo/analyse.py
にインポートしたいのですbar/dbhandler.py
が、エラーが表示されるだけです。
私はいくつかのステートメントを試しました:
それらはすべて同じエラーを出します。私も試しました:
しかし、私は受け取りました:
StackOverflowで約50のスレッドを調べ、インターネットで数え切れないほどの記事を読んだことがあります。私が見つけたすべてのことから、ファイルimport src.foo.*
だけが各フォルダーにある場合、ステートメントはパッケージ内のどこからでも機能するはずです。__init__.py
誰かが同じ問題を抱えていましたか?
python - 10億回目の相対輸入
私はここにいました:
- http://www.python.org/dev/peps/pep-0328/
- http://docs.python.org/2/tutorial/modules.html#packages
- Python パッケージ: 相対インポート
- Python相対インポートのサンプルコードが機能しない
- Python 2.5 での相対インポート
- Python での相対インポート
- Python: 相対インポートを無効にする
私がコピーしなかった多くの URL は、SO にあるものもあれば、他のサイトにあるものもありました。
永遠に繰り返される質問は次のとおりです。この「パッケージ以外で相対インポートを試みました」というメッセージを解決するにはどうすればよいですか?
pep-0328 でパッケージの正確なレプリカを作成しました。
インポートはコンソールから行われました。
私は適切なモジュールで spam と Egg という名前の関数を作成しました。当然、うまくいきませんでした。答えは私がリストした 4 番目の URL にあるようですが、それはすべて私にとって卒業生です。私がアクセスした URL の 1 つで、次の応答がありました。
相対インポートでは、モジュールの name 属性を使用して、パッケージ階層内でのそのモジュールの位置を決定します。モジュールの名前にパッケージ情報が含まれていない場合 (たとえば、「main」に設定されている場合)、モジュールが実際にファイル システム上のどこにあるかに関係なく、モジュールが最上位モジュールであるかのように相対インポートが解決されます。
上記の応答は有望に見えますが、私にはすべて象形文字です。だから私の質問、どうすればPythonが「非パッケージで相対インポートを試みました」と返さないようにできますか? おそらく-mを含む答えがあります。
なぜPythonがそのエラーメッセージを表示するのか、「非パッケージ」とは何を意味するのか、なぜ「パッケージ」をどのように定義するのか、幼稚園児が理解できるほど簡単な言葉で正確な答えを教えてください。
namespaces - XML-名前空間の区切り文字-名前空間の相対インポート
XML名前空間に関する概念的な質問があります。フォルダー階層に2つの異なるxsdファイルがある場合:
そして、これら2つのファイルのそれぞれで、targetNamespace属性によって個別の名前空間を定義しました。
fileA.xsdでは、
そしてfileB.xsdでは次のようになります。
eurlのパスを使用して相対インポートを実行できますか?
たとえば使用できますか
fileB.xsd内?
私はそれを行う方法にはあまり関心がありません。スキーマ定義の場所を指定する方法はいろいろあることを知っています。URLのパスの意味に関心があるだけです。
私の知る限り、URLは、xsdファイルの型を一意に識別するために使用される文字列です(定義ファイルの場所を指定する以外に、保証はありません)。私は正しいですか?
うまくいけば、私の質問は答えるにはあまりにも奇妙ではありません:)
よろしくお願いしますMischa
python - このパッケージをインポートするには? Python3.3 での相対インポート
私は自分のマシンでこれを機能させようとしています(アーチ、gnome 3を使用)。セットアップはうまくいったと思います (すべての印刷コマンドを置き換えました) が、chemlab
ターミナルで実行すると、コア パッケージがないというエラーが表示されます。
そのため、ファイルをローカルで実行しようとしました。適切なフォルダーに移動して実行しましたpython __init__.py
No I get
少し調べてみたところ、..libs.ckdtree import cKDTree
I chemlab.libs.ckdtree import cKDTree
did so only to get に置き換えることができる (すべきか?) ことがわかりました
トレースバック (最新の呼び出しが最後): ファイル ""、行 1、ファイル "./core/ init .py"、行 1、in from .molecule import Molecule、Atom ファイル "./core/molecule.py"、行6, chemlab.libs.ckdtree import cKDTree File "/usr/lib/python3.3/site-packages/chemlab-0.2-py3.3-linux-i686.egg/chemlab/init.py "から 1 行目, in from core.molecule import Molecule, Atom ImportError: 名前 Molecule をインポートできません
それは私を困惑させます。これをインポート/実行するにはどうすればよいですか?
編集: フォルダ構造:
編集 2:
chemlab/__init__.py
行のみが core.molecule import Molecule, Atom からのものです
および chelab/core/molecule/ import セクションは次のようになります
python - -m で実行する必要がある Python モジュールをデバッグするには?
私が試したすべてのデバッガーは、ソース ファイルがデバッグされることを期待しています。ただし、Python は常にこのように機能するとは限りません。
とりわけ、内部にファイル__init__.py
とファイルを含むフォルダーであるモジュールがあり、通常は次のように実行します。__main__.py
を使用しない-m
と、相対インポートが失敗します。pudb
、およびその他にフォルダーを渡すだけではpdb
、デバッガーは失敗します。
どうすればこれをデバッグできますか? できればpudb
、相対インポートを削除せずに。
python - パッケージ内のモジュールのみをインポートするPython
複数のモジュールを含む Python パッケージを作成しています。パッケージ内にモジュールをインポートするときに、同じ名前を持つパッケージ外のものではなく、パッケージからのみインポートしていることを確認したいと思います。
これを行う正しい方法は、相対インポートを使用することですか? パッケージを自分のマシンの別の場所に移動した場合 (または、顧客のマシンのどこにでもインストールされた場合) に干渉しますか?
python - Python - Referenced packages to be attributes of other packages
How do I make one package reference another package, but make it look like the referenced package belongs to the initial package?
Inside package_1.__init__.py is
Now the following calls works fine:
But I want to be able to do this:
But I get:
The reason I want to do this is because package_2 used to be a subpackage of package_1. Now that package_2 is it's own package, I want to be able to reference it from package_1 to keep the behaviour as it was before.