#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.