2016-05-12 4 views
11

これは何度も尋ねられましたが、どういうわけかこのエラーを乗り越えることはできません。ここに私のディレクトリ構造 -ValueError:テストパッケージではない非パッケージで相対インポートを試みました

project/ 
    pkg/ 
    __init__.py 
    subpackage1/ 
     script1.py 
     __init__.py 
    subpackage2/ 
     script2.py 
     __init__.py 

script2.pyを持ってされています

class myclass: 
    def myfunction: 

script1.pyは私も

from ..subpackage2 import myclass 

を試してみました

from ..subpackage2 import script2 

しており、これは私を与えます:ValueError:相対的な試行非パッケージでのインポート

本当にありがとうございます。

+0

[Pythonで相対インポートを行う方法は?](http://stackoverflow.com/questions/72852/how-to-relative-imports-in-python) – ganchito55

答えて

16

この答えは何が起こっているのかを説明します。https://stackoverflow.com/a/73149/769971

おそらくsubpackage1 /ディレクトリ内からscript1.pyを実行しています。 インポートをfrom subpackage2 import script2に変更し、pkg /ディレクトリにバックアップしてから、python -m subpackage1.script1を実行します。

+1

これは私のために動作します。私のエラーは 'python -m subpackage1.script1'の代わりに' python。/ subpackage1/script1.py'でPythonスクリプトを実行しようとしていたと思います。 –

関連する問題