У меня есть исходный код питона и UnitTest структуры коды в следующей иерархии:питон UnitTest неудачи с относительным импортом в исходном коде
bin/
module1.py
module2.py
module3.py
test/
module1_test.py
Код в модулях заключаются в следующем: module1.py
from module2 import testMethod1, testMethod2
def testMethodY():
...
...
...
module2.py
from module3 import testMethod4
module3.py
def testMethod4():
module1_test.py
import unittest
import sys, os
path = os.path.dirname(__file__)
path = os.path.join(path, 'bin')
sys.path.append("/bin")
from module1 import testMethodY
...(Some code for unit test)
когда я бегу питона module1_test.py он терпит неудачу с ошибкой импорта:
ImportError: cannot import name testMethod4
Не уверен, что это неправильно. Если я запускаю исходный код, то все импортные работы работают нормально. Но с python unittest эти относительные импортные сбои. Может кто-нибудь сказать мне, какую ошибку я делаю.
Можете ли вы рассказать о структуре, как, где находится «bin» и другие каналы? – kumar
bin и test находятся в одном и том же каталоге/usr/lib/ – Sandy
Sandy - я думаю, вам нужно очистить свой пример. Где-то вы делаете простую опечатку, которая, вероятно, вызывает вашу проблему, но ошибок слишком много. Например, 'из модуля 1' (у вас не может быть места там. Кроме того, вы ссылаетесь на' testMethodY', но в вашем исключении упоминается 'testMethod4'. Попробуйте упростить это до наименьшего воспроизводимого примера. – user590028