Ошибка модуля не найдена при попытке импортировать модуль, который я создал

#python #python-3.x #path #settings #vscode-settings

#python #python-3.x #путь #Настройки #vscode-настройки

Вопрос:

Я попытался импортировать MyModule myPackage, который я сделал, в main. Структура каталогов выглядит следующим образом

 #Directory structure
test02
└myPackage
│     └myModule.py
│     └__init__.py
└myView
      └main.py
  

но у него есть ошибка ModuleNotFoundError, похожая на снимок экрана, который я прикрепил
, введите описание изображения здесь

 #main 
from myPackage import myModule

myModule.printTest()
  
 #myModule
def printTest():
    print('test')
  

Я знаю одно решение, и оно заключается в том, что я сам ввожу путь
, вводя описание изображения здесь

 #main 
import sys
sys.path.insert(0, '/VScode/vscode_python/test02/')
from myPackage import myModule

myModule.printTest()
  
 #myModule
def printTest():
    print('test')
  

но я думаю, что это не разумный способ.

Я хотел бы знать, есть ли способ настроить vs-код так, чтобы путь добавлялся автоматически.

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

1. Привет, Лео, не мог бы ты вставить код в сообщение, пожалуйста, вместо изображений? Это сделало бы ваш вопрос более читаемым, а также доступным для поиска. Спасибо.

2. Спасибо за ваш комментарий. Я добавил код

Ответ №1:

Вы можете либо скопировать, либо вставить MyModule в то же место, что и main.py . И просто используйте :

 import myModule
  

Или скопируйте и вставьте myPackage в указанное ранее местоположение. И используйте:

 from myPackage import myModule
  

Ответ №2:

Ваша проблема в том, что MyModule.py не находится в той же папке, что и main.py .

Или вы должны поместить их в одну папку, или вы можете добавить путь к MyModule.py в переменной sys.path:

 import os,sys,inspect
currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
parentdir = os.path.dirname(currentdir)
print(sys.path)
sys.path.insert(0,parentdir '\MyPackage')
print(sys.path)
  

а затем импортируйте MyModule

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

1. Хммм…. Есть ли какой-либо способ решить проблему без прямого ввода пути при сохранении текущей структуры каталогов? Например, измените настройки vscode.