繁体   English   中英

Python 未找到 Visual Studio 代码模块

[英]Python Visual Studio Code Module not found

已安装 Python 3.7.6 并尝试在 Visual Studio Code 中编写代码

使用: import pikepdf

给我ModuleNotFoundError: No module named 'pikepdf'

但是,我运行“pip install pikepdf”并得到:

已满足要求:c:\users\ME\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-xml>8.2.1 要求中的 pikepdf在 c:\users\ME\appdata\local\packages\pythonsoftwarefoundation.python.3.7_qbz5n2kfra8p0\localcache\local-packages\python37\site-packages 中(来自 pike.pdf)(4.4

我的Python的安装路径是: C:\Users\ME\AppData\Local\Programs\Python\Python38

并尝试更改“Python:Python 路径”中的某些内容会导致更多错误。

问题是 Visual Studio Code 附带了自己的 Python 版本,而我已经安装了自己的版本。

通过更改 VSC 正在运行的版本,使其与安装模块的版本相匹配,该问题已得到解决。

在此处输入图片说明

您可以检查您的 VSCode 正在使用哪个环境。 您可以通过检查左下角来做到这一点,在这里:

Visual Studio 代码图像。

当您运行代码时,您使用的是python还是python3.7

从 Visual Studio Code 调试 Python 脚本时,也会出现此问题。 如果您想导入本地 python 文件,调试器将找不到它。 一种解决方案是通过路径加载模块:

import importlib
import importlib.machinery
import importlib.util
import pathlib

path = s.path.abspath(os.path.join(pathlib.Path(__file__).parent.absolute(), '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)

myClass = module.myClass()

没有调试工作正常,正确加载了我的模块。

为了调试 main.py VSCode 需要知道明确的库路径。 这可以通过在 launch.json 中设置环境 ('env') 变量来完成。 第一步是在 .vscode 文件夹中创建一个“launch.json”。

/
├── .vscode/
│   └── launch.json
├── mySubdir/
│   └── myLib.py
└── main.py

如果 main.py 想要将 myLib.py 作为模块导入,VSCode 只有在 mySubDir 是 Python 路径的一部分时才能这样做。

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Current File",
            "type": "python",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "cwd": "${fileDirname}",
            "env": {"PYTHONPATH": "${workspaceFolder}/mySubdir${pathSeparator}${pathSeparator}${env:PYTHONPATH}"},
        }
    ]
}

{workspaceFolder} 和 {pathSeparator} 是预定义的变量,将被 VSCode 替换。

这个线程给出了更广泛的解释: How to correct set PYTHONPATH for Visual Studio Code

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM