相关疑难解决方法(0)

PyLint"无法导入"错误 - 如何设置PYTHONPATH?

我正在Windows上的Wing IDE中运行PyLint.我的项目中有一个子目录(包),在包中我从顶层导入一个模块,即.

__init__.py
myapp.py
one.py
subdir\
    __init__.py
    two.py
Run Code Online (Sandbox Code Playgroud)

two.py我内部import one,这在运行时工作正常,因为顶级目录(从中myapp.py运行)位于Python路径中.但是,当我在two.py上运行PyLint时,它给出了一个错误:

F0401: Unable to import 'one'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

python pylint virtualenv pythonpath

133
推荐指数
9
解决办法
15万
查看次数

VS Code pylint(导入错误)“无法从自定义目录导入”子模块

我已经将我自己编写的 Python 脚本组织在一个由多个子目录组成的树中,从已经包含在"python.autoComplete.extraPaths"settings-json 中的父目录“Scripts”开始:

"python.autoComplete.extraPaths": ["/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts",
                                       "/home/andylu/anaconda3/lib/python3.7/site-packages"]
Run Code Online (Sandbox Code Playgroud)

除此之外,我还包含了一个 Python 环境文件:

"python.envFile": "/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Visual_studio_code/vscode_own_scripts.env"
Run Code Online (Sandbox Code Playgroud)

其中包含该行

export PYTHONPATH=/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts:/home/andylu/anaconda3/lib/python3.7/site-packages
Run Code Online (Sandbox Code Playgroud)

所有这些以前都很好,我所有的脚本都分布在 1 个以上的单个目录级别,如下所示:

+---Scripts
|   +---General
|   |   +---script_one.py
|   |   +---script_two.py
Run Code Online (Sandbox Code Playgroud)

当我在任何 python 脚本中导入时,例如script_one.py,我用

import sys
sys.path.append(
    "/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts/"
)

import General.script_one as one
Run Code Online (Sandbox Code Playgroud)

并且 pylint 正确识别了这个导入的脚本,而不会抛出上述VS Code pylint(import-error).


现在,情况不同了。脚本变得如此之多,我将子文件夹拆分General包含一个额外的子目录级别,以便更清晰地组织脚本:

+---Scripts
|   +---General
|   |   +---Plotting
|   |   |   +---script_one.py
|   |   |   +---script_two.py
|   |   +---Misc
| …
Run Code Online (Sandbox Code Playgroud)

python pylint importerror visual-studio-code pylintrc

5
推荐指数
2
解决办法
3812
查看次数