からサブモジュールやサブパッケージをインポートすると、私の問題を示していたファイル構造でありますのは、私が持っているとしましょう:Pythonは:<code>main_package</code>の<code>__init__.py</code>内</p> <pre><code>/main_package/ __init__.py script1.py sub_package/ __init__.py model.py </code></pre> <p>:私はまだここに、パッケージを作成する方法を把握しようとしている同じパッケージ
import main_package.script1
...
そしてscript1.py
内の私が持っている:
from sub_package import model
...
これは動作しません。私はmain_package
をインポートしようとすると、私は、呼び出しの次のセットでエラーが発生します:import main_package.script1
- >from sub_package import model
どうやらscript1.py
内from sub_package import model
は動作しません。
私は次のことを試してみました:
from main_package.sub_package import model
from . import sub_package.model
from .sub_package import model
そしてそれらのどれも動作しません。申し訳ありませんが、どこかで愚かな間違いをしていますが、問題を解決する方法は何ですか?
UPDATE:[OK]を何人かの人々がこの問題が発生した正確にどのように尋ねたので、私は私が取得し、私の実際の構造と手順だ実際のエラーメッセージを投稿します。申し訳ありませんが、名前が上から変更されました。ここで
がエラーを起こすパッケージの私の本当のパッケージ構造である:私は、端末(すなわちipython script.py [args]
)でscript.py
を実行
script.py
/MCMC2/
__init__.py
main_script.py
ExoData.py
Models/
__init__.py
model_main.py
と、次のエラーメッセージが表示されます(私は、問題の後に来るすべてを消去しましたそれを明確にするために...
に置き換えました)。
ImportError Traceback (most recent call last)
/home/usr/script.py in <module>()
1 import pymc
----> 2 from MCMC2 import ExoData
...
/home/usr/MCMC2/__init__.py in <module>()
...
----> 4 import MCMC2.main_script
...
/home/usr/MCMC2/main_script.py in <module>()
1 try: from Models import model_main
----> 2 except: from .Models import model_main
...
/home/usr/MCMC2/Models/__init__.py in <module>()
----> 1 import Models.model_main
...
ImportError: No module named 'Models'
モデルは間違いな方法で存在します。
'.sub_packageインポートからどのようなエラーを与えるmodel'のでしょうか? – vaultah
あなたは 'script1.py'の実行方法について言及していません。他のプログラムからインポートされているのですか、スクリプトとして直接実行されていますか? 'main_package/__ __ initで – tdelaney
が。から'やっpy'。輸入script1'と.sub_package輸入model'から ''やっmain_package/script1.py'、それは私のために動作します。あなたはどのバージョンのpythonを持っていますか?テストを実行するときの現在のディレクトリは何ですか?私はパッケージが正しく見つかったように 'main_package'の親にいました。 – tdelaney