rea*_*een 12 python pylint python-import python-3.x visual-studio-code
我正在使用 python 3.7.3 在 VSCode 中构建我的代码。
文件夹结构:
project
??? main.py
??? modules
??? __init__.py
??? foo.py
??? boo.py
Run Code Online (Sandbox Code Playgroud)
在 foo.py 中:
import boo
boo.printBoo()
Run Code Online (Sandbox Code Playgroud)
当我运行 foo.py 时它起作用了。我可以得到我期望的结果。
This is boo
但是 VSCode 弹出:
无法导入 'boo' pylint(导入错误)
虽然代码有效,但有没有办法摆脱pylint(import-error)?
我试图将导入语句更改为
project
??? main.py
??? modules
??? __init__.py
??? foo.py
??? boo.py
Run Code Online (Sandbox Code Playgroud)
错误:尝试在没有已知父包的情况下进行相对导入
和
import boo
boo.printBoo()
Run Code Online (Sandbox Code Playgroud)
错误:没有名为“模块”的模块
有什么问题,是pylint的问题还是我误用了导入?
Dan*_* TZ 11
有完全相同的问题,两个文件共存于同一pylint(import-error)个子文件夹中,执行得很好,但在 VSCode 中得到了一个。
我的解决方案是将以下文本添加到<projectroot>/.vscode/settings.json:
{
"python.linting.pylintArgs": [
"--init-hook",
"import sys; sys.path.insert(0, './modules')"
]
}
Run Code Online (Sandbox Code Playgroud)
除了项目根文件夹之外,它将相关的“模块”子文件夹添加到pylint将要查看的路径中
import boo在 Python 3 中工作的唯一方法foo是直接运行foo.py。如果是这种情况,那么您需要让 VS Code 打开您的modules目录,而不是project.
如果你想打开的话project,把import改成from . import boo然后就可以了python3 -m modules.foo。
| 归档时间: |
|
| 查看次数: |
5942 次 |
| 最近记录: |