![](/img/trans.png)
[英]Python module not found in Visual Studio Code but other IDLE found it
[英]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 脚本时,也会出现此问题。 如果您想导入本地 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.