#python #python-import
#python #python-импорт
Вопрос:
Я не нахожу ошибку ни в коде, ни в вызове при попытке выполнить тест импорта.
Моя структура каталогов следующая: (из /home/user1/python_test/
)
main.py
Aux/lib1.py
Aux/__init__.py
main.py:
from Aux.lib1 import fun_A
if __name__ == "__main__":
fun_A()
print("all done")
Aux/lib1.py:
def fun_A():
print("A function called")
Я выполняю из терминала ( python main.py
из каталога, где main.py есть), может быть, есть необходимость установить pythonpath? Я не помню необходимости раньше, некоторое время назад я создал несколько подобных программ на Python (2/3 года)
Я также пробовал from .Aux.lib1 import fun_A
вместо from Aux.lib1 import fun_A
, но ничего не работает. Ошибка:
File "main.py", line 1, in <module>
from Aux.lib1 import fun_A
ImportError: No module named Aux.lib1
Комментарии:
1. Использование:
os.getcwd()
это покажет вам, в каком текущем каталоге вы запускаете этот код. и используйтеos.chdir('/home/user1/python_test/')
для его изменения2. Результат тот же:
os.getcwd()
выводит/home/user1/python_test/
3. Пример отлично работает на моей машине. В вашей среде Python должно быть что-то еще
4. хм, и что я мог бы найти, чтобы узнать проблему? Для меня это тоже странно, обычно это работает без ошибок.
Ответ №1:
Создайте пустой файл с именем __init__.py
в папке Aux. Без этого файла каталог не может быть модулем.
Комментарии:
1. о, извините, я не упомянул об этом, но у меня также есть этот файл внутри
Aux/
Ответ №2:
О боже, это была супер глупая ошибка. Я так привык выполнять внутри виртуальной среды, что по ошибке использовал python2 python main.py
. Выполнение python3 main.py
сработало для меня.