ImportError.Нет модуля с именем Commons error - python - PullRequest
2 голосов
/ 15 марта 2019

Привет, у меня есть проект, который состоит из пары папок с именами Proj1 и Proj2.

Home
    Proj1
       Scripts1.py

    Proj2
       Scripts2.py

    Commons.py

В Scripts1 я установил

sys.path.append('/Home')
os.chdir('/Home')

и import Commons, который содержитФункция полезна для каждого скрипта.Весь проект на сервере Linux.Я запускаю сценарии с bash

script_name=Scripts1
script_file="/Home/Proj1/${script_name}.py"
python "$script_file"

Я получаю сообщение об ошибке ModuleNotFoundError: No module named 'Commons'.Чего мне не хватает?

1 Ответ

4 голосов
/ 15 марта 2019

Вам нужно выбрать имя верхнего уровня для вашего модуля, затем расположить код следующим образом:

Home
  script_name.py
  somename
    Common.py
    Proj1
      Scripts1.py
    Proj2
      Scripts2.py

Затем используйте import somename и используйте somename.Common внутри самого модуля и somename.Proj1.Scripts1и т.д. Кроме того, вы, вероятно, хотите переместить script_name.py за пределы самого каталога модуля, как показано на рисунке.

...