gpt4 book ai didi

python - VS Code pylint(import-error) "Unable to import"来自自定义目录的子模块

转载 作者:行者123 更新时间:2023-12-03 20:25:53 25 4
gpt4 key购买 nike

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

"python.autoComplete.extraPaths": ["/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts",
"/home/andylu/anaconda3/lib/python3.7/site-packages"]

除此之外,我还包含了一个 Python 环境文件:
"python.envFile": "/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Visual_studio_code/vscode_own_scripts.env"

其中包含该行
export PYTHONPATH=/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts:/home/andylu/anaconda3/lib/python3.7/site-packages

所有这些都做得很好 之前 ,我所有的脚本都只分发了 超过 1 个单一目录级别 ,像这样:
+---Scripts
| +---General
| | +---script_one.py
| | +---script_two.py

当我在任何 python 脚本中导入时,例如 script_one.py ,
我开始了脚本
import sys
sys.path.append(
"/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts/"
)

import General.script_one as one

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

现在,情况不同了。 脚本太多了,我把子文件夹 General 分开了。至 包含一个额外的子目录级别 为了使脚本更清晰地组织:
+---Scripts
| +---General
| | +---Plotting
| | | +---script_one.py
| | | +---script_two.py
| | +---Misc
| | | +---script_three.py
| | | +---script_four.py
....

当使用例如启动 Python 脚本时以下行, 我得到 VS Code pylint(import-error)对于以下每个导入。
# Package importing

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

import General.Plotting.auxiliary_plotting_functions as aux_plot
import General.Plotting.plotting as plot

#%%
# TIME MEASUREMENT for the entire code/function
import General.Misc.timing

我不知道为什么 pylint 突然停止识别导入,只是因为我添加了一个额外的子目录级别。我希望这些毫无意义的 pylint 导入错误消失,因为在执行代码时有效地正确导入了子子模型。

我什至尝试修改 .pylintrc - 文件,位于 /home/andylu/anaconda3/pkgs/pylint-2.3.1-py37_0/lib/python3.7/site-packages/pylint/test/regrtest_data/.pylintrc :
[MASTER]

optimize-ast=no

init-hook='import sys; sys.path.append("/home/andylu/Dokumente/Allgemeines_material/Sonstiges/Programming/Python/Scripts")'

添加 init-hook - 线也没有效果。

最佳答案

两件事情。一、加__init__.py文件到您的所有子目录,以使它们成为正确的包。

二、你不应该直接添加site-packages目录。如果那是您正在使用的 Python 环境,那么您需要确保从扩展中选择它。

关于python - VS Code pylint(import-error) "Unable to import"来自自定义目录的子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61204189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com