Модуль кода Python Visual Studio не найден
Установили Python 3.7.6 и пытаюсь написать код в Visual Studio Code
С помощью: import pikepdf
Получает мне ошибку ModuleNotFoundError: No module named 'pikepdf'
Однако я запускаю "pip install pikepdf" и получаю:
Требование уже выполнено: pikepdf в c:\users\ME\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages (1.8.2) Требование уже выполнено: lxml>=4.0 в c: \ users \ ME \ appdata \ local \ packages \ pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0 \ localcache \ local-packages \ python37 \ site-packages (из pikepdf) (4.4.2)
Мой путь установки Python:C:\Users\ME\AppData\Local\Programs\Python\Python38
И попытка что-то изменить в "Python: Python Path" вызывает у меня больше ошибок.
3 ответа
Проблема заключалась в том, что Visual Studio Code поставляется с собственной версией Python, а я установил свою.
Проблема была решена путем изменения версии, в которой работал VSC, так, чтобы она соответствовала той, в которой устанавливались модули.
Вы можете проверить, в какой среде используется ваш VSCode. Вы можете сделать это, проверив свой левый нижний угол, здесь: изображение кода Visual Studio.
Когда вы запускаете свой код, вы используете python
или python3.7
?
Эта проблема также может возникнуть при отладке скрипта Python из Visual Studio Code. Если вы хотите импортировать локальный файл Python, отладчик не сможет его найти. Решение состоит в том, чтобы загрузить модуль по пути:
path = os.path.abspath(os.path.join(pathlib.Path(__file__).parent.absolute(), '..', 'subdir', 'myFile.py'))
loader = importlib.machinery.SourceFileLoader('myFile', path)
spec = importlib.util.spec_from_loader('myFile', loader)
module = importlib.util.module_from_spec(spec)
spec.loader.exec_module(module)
# now use the module:
module.myMethod()
myClassInstance = module.myClass()
Теперь отладка работает нормально, с правильно загруженным моим модулем.