私はすでにこれに似た質問がたくさんあることを知っていますが、残念ながら私の問題にどのように適用するか分かりませんでした。Python:SystemError親モジュールがロードされておらず、相対インポートを実行できません
次のように私のプロジェクトの構造は次のとおりです。
Project
|___ maincode
|___ __init__.py
|___ losses.py
|___ bin
|___ __init__.py
|___ train.py
、その後train.py
に、私は次のコードを持っている:私はプロジェクトのメインディレクトリProject/
からスクリプトtrain.py
を実行している場合今
# Allow relative imports when being executed as script.
if __name__ == "__main__" and __package__ is None:
__package__ = "maincode.bin"
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..'))
from .. import losses
def main(args=None):
#some code here
if __name__ == '__main__':
main()
をつまり、端末で次のコマンドを実行します。
maincode/bin/train.py
は、私は、次のエラーを得る:
SystemError: Parent module 'maincode.bin' not loaded, cannot perform relative import
Iは、Python 2.7.6とPython 3.5.2の両方を試み、同じエラーを得ました。
助けてください。前もって感謝します!
はあなただけtrain.pyまたはアプリケーション全体を実行しますか? – edlee
@edleeメインコードは 'train.py'にあります。これはプロジェクトの残りの部分に依存しますので、アプリケーション全体を実行する必要がありますか? – Khue
これは何を意味するのでしょうか?なぜそうでないのか分かりません。 – user2357112