0
モジュールをPythonで相対パスからインポートする際に問題があります。私はウェブ上で見つけたすべてを試しました。ここに私のディレクトリ構造は次のとおりです。相対パスからモジュールをインポートできません
starcipher/
__init__.py
caesar.py
tests/
__init__.py
test_caesar.py
あなたが言うことができるように、tests/
ディレクトリはすべての私のユニットテストが含まれています。 test_caesar.py
はcaesar.py
で定義されたクラスを使用します。ここに私のファイルです:
caesar.py
:
class Caesar:
# Blabla
tests/test_caesar.py
:
import unittest
from ..caesar import Caesar
# I also tried:
from caesar import Caesar
from starcipher.caesar import Caesar
from . import Caesar
from .. import Caesar
# Nothing works.
class TestCaesar(unittest.TestCase):
# Blabla
私はこのエラーを毎回持っている:
Traceback (most recent call last):
File "test_caesar.py", line 2, in <module>
from ..caesar import Caesar
SystemError: Parent module '' not loaded, cannot perform relative import
EDIT
012ルートディレクトリに- :ここ
は、私は私のユニットテストを実行する方法です
python test_caesar.py
- あるいは:
- それとも
tests/
ディレクトリ内python -m unittest discover tests/
python -m unittest
SOLUTION
Pocinのおかげで、ディレクトリのファイルが問題を解決しました!
ありがとうございます。
テストファイルの実行方法を正確に表示する必要があります。 –
私はまったく同じことを(py.testだけで)苦労していました。私の場合は、テスト/ディレクトリから '__init __。py'を削除すると、私のために修正されました –
@Pocin Yeah! '__init __。py'を' tests/'から削除しました!ありがとう:) – Mathieu