を疑問視?基本的なPythonの輸入は、私はこのようなsrcディレクトリを設定している場合は
ありがとうございます! (私はルートディレクトリ内の別の__init__.py
のファイルを持っている必要がある場合、私に知らせて?)main.pyから
を疑問視?基本的なPythonの輸入は、私はこのようなsrcディレクトリを設定している場合は
ありがとうございます! (私はルートディレクトリ内の別の__init__.py
のファイルを持っている必要がある場合、私に知らせて?)main.pyから
:test.pyから
import pkg1.util
これがPython 3だと、.py
ファイルに以下を追加する必要はありません。
from __future__ import absolute_import
:Pythonの2の上に立ち往生していますいくつかの貧しい人々芝はあなたのコードを使用する必要がある場合、それは後方移植を助けるので、私はまだかかわらず、希望ここで上記の行は、あなたの答えです:main.py
から
:
import pkg1.util as util
test.py
からあなたがするpkg1
とpkg2
と見なさかどうかに応じて2つの方法のいずれかを使用します常に互いに関連して同じ方法で一緒に配備されるもの、または代わりに、それぞれが常にトップレベルで半独立して配備されるかどうかを決定します。最初の場合は、これを行うだろう:
from ..pkg1 import util
をし、それが第二の選択肢だ場合は、この:
import pkg1.util as util
これは、あなたが常にでmain.py
ディレクトリからのPythonを実行していることを、当然のことながら、意味しますまたはそのディレクトリがPYTHONPATH
にあるか、何らかの理由でsys.path
になります(たとえば、メインのPythonサイトパッケージディレクトリなど)。
:あなたが言及しているので
from ..pkg1 import util
何らかの理由で 'PYPATH'に別の' pkg1'が存在する場合、これらのオプションの両方でインポートされた* this * 'pkg1'を取得できますか? –
@aharon:適切なディレクトリがパスの先頭にあることを確認するために、 'sys.path'を自分自身で邪魔することなく意図した' pkg1'を得ることを約束するオプションはありません。あなたが '名前空間パッケージ 'としてパッケージを管理している' setuptools'のようなパッケージ管理システムを持っていない限り、この方法で競合するパッケージ名を持つことは非常に悪い考えです。 – Omnifarious
これは 'main.py'と同じディレクトリに' __init__py'を必要としないのでしょうか?つまり、 'test.py'と' util.py'は共通のスーパーパッケージのサブパッケージではない完全に別のパッケージに入っています。 –