Python: ‘ModuleNotFoundError’ при попытке импортировать модуль из того же пакета

#python #python-3.x #traceback #modulenotfounderror

Вопрос:

Я использую python 3.9 на PyCharm в Windows 10. Структура моего проекта такова:

 /application
   /model
      /games.py
      /lock.py
      /pointClass.py
   /resources
     ...file



/lib
   ...file
 

На Pycharm программа работает, но если я попытаюсь открыть ее на bash (в Linux или macOS), она выдаст мне эту ошибку:

 Traceback (most recent call last):
  File "games.py", line 16, in <module>
    from application.model.lock import RWLock
ModuleNotFoundError: No module named 'application'
 

В моем games.py файл я пишу это, чтобы импортировать другой файл:

 from application.model.lock import RWLock
from application.model.pointClass import *
 

Как я могу решить эту проблему?
Если вы хотите посмотреть весь мой проект, вы можете перейти на этот репозиторий github: https://github.com/MarioAvolio/BomberFriends

Комментарии:

1. из какого каталога вы пытаетесь запустить программу?

Ответ №1:

Это происходит потому,что Pycharm создает свою собственную виртуальную среду ,в то время как при запуске с терминала вам нужно настроить ее самостоятельно, я воссоздал вашу проблему и нашел решение, сначала вы можете удалить абсолютный импорт и использовать:

 from lock import RWlock
 

или вы можете отредактировать свою среду и настроить sys.path в верхней части games.py вот так:

 sys.path.append('Path to your project') 
 

Ответ №2:

На самом деле файл games.py и lock.py и pointClass.py находится в одной папке, так почему бы не импортировать его напрямую, как это :

 from lock import RWLock
from pointClass import *