当我尝试导入自定义库时,如何在Visual Studio Code中修复pylint(import-error)错误?

11 浏览
0 Comments

当我尝试导入自定义库时,如何在Visual Studio Code中修复pylint(import-error)错误?

我正在使用Python3编写Python代码,导入了几个自定义库。这些库位于文件结构中。当代码从命令窗口运行时,导入这些库没有问题,但是当我在Visual Studio Code中打开文件时,pylint会给我所有自定义库导入一个import-error错误。

我对这个问题进行了大量令人沮丧的研究,发现很多人遇到了类似的问题。然而,我无法使列出的解决方案中的任何一个起作用,而且有很多我都不理解,以至于连尝试都没尝试。我尝试了卸载和重新安装VScode、pylint和Python扩展本身。我尝试了一些修改launch.json和settings.json的方法,但我以前从未处理过json文件,我所做的任何事情似乎都没有任何区别。我只安装了一个Python环境。我尝试使用"文件->打开文件夹..."来打开文件夹,而不是使用上下文窗口的方法。代码使用sys.path.append,以便找到具有库的正确目录,正如我所说,当从命令窗口运行时,这个方法工作得很好。

我看到的另一个解决方案是在一个名为~/.pylintrc的文件中添加一行init-hook='import sys; sys.path.append("/path/to/root")'。我想我已经这样做了,但它并没有解决我的问题。然而,对于这个文件是什么,如何找到它,或者它需要什么路径,几乎没有解释。我只是在文件浏览器中搜索了'.pylintrc',找到了一个名为这个的文件,然后将这一行放在那里。我通过导航到包含所有子文件夹中的库的文件夹,然后复制/粘贴文件路径来获得"根目录路径"。

下面是导入库的一个示例。这个示例是有效的,只是对于pylint或VScode来说不是这样。

#自定义库
sys.path.append(os.path.join( '../..', 'common', 'appdata'))
import appdata

"无法导入'appdata' pylint(import-error)"

显示为'import'上的错误

如果我尝试进行调试,我会得到以下消息

"异常已发生:ImportError

找不到名为'appdata'的模块"

感谢提供的任何帮助。谢谢。

0
0 Comments

问题原因:在使用Visual Studio Code导入自定义库时,出现了pylint(import-error)错误。这是因为pylint无法正确识别自定义库的路径。

解决方法:最好的解决方法是使用一个名为.pylintrc的文件。具体操作如下:

1. 在项目的根目录下添加.pylintrc文件。

2. 在.pylintrc文件中配置钩子(hook),可以参考以下链接:https://stackoverflow.com/a/3065082

3. 根据需要,可以根据以下链接进行修改:stackoverflow.com/a/53908601/3090309

最后,重新运行Visual Studio Code,导入自定义库时,应该不再出现pylint(import-error)错误。

0
0 Comments

在Visual Studio Code中,当我尝试导入自定义库时,如何解决pylint(import-error)错误?出现这个问题的原因是Pylint不能执行你的代码,所以Pylint不知道你对sys.path的自定义操作。因此,你需要找出如何告诉Pylint将你代码中的文件夹视为sys.path的一部分。一种方法是指定PYTHONPATH,另一种方法是在.pylintrc文件中指定它。

.pylintrc文件是Pylint的配置文件。Pylint文档中记录了如何找到.pylintrc文件。你需要在.pylintrc文件中添加一行代码,告诉Pylint解决"import appdata"问题。以下是.pylintrc文件的示例内容:

[MASTER]
init-hook='import sys; sys.path.append("C:\Users\pathToAppDataFolder")'
optimize-ast=no

请注意,你在第二行中添加的代码是根据在其他地方找到的解决方案添加的。重启VS Code后,问题仍然存在。可能是我做错了什么吗?感谢你的帮助!

对于Pylint的配置文件设置,很遗憾我不了解。但就VS Code而言,所有的扩展只是代表你执行Pylint,所以它在这方面没有直接参与,除非你通过环境变量定义文件覆盖PYTHONPATH等传递给它的参数。

0
0 Comments

问题出现的原因是可能存在以下情况:

1. 使用了多个版本的Python3,但是导入自定义库时使用的Python版本与安装库时使用的Python版本不一致。

2. 自定义库所在的文件夹没有包含一个名为`__init__.py`的空文件。

解决方法如下:

解决方案1:确保自定义库所在的文件夹包含一个名为`__init__.py`的空文件。如果没有该文件,可以通过IDE(如VSCode)创建一个并放置在包含自定义库的文件夹中。这样可以确保Python在文件夹中搜索与要导入的文件名匹配的文件。

解决方案2:如果通过不同版本的Python安装了一个不在标准库中的库(例如,通过Python3.8安装了randommodule,但尝试在Python3.9中导入它),则可以将该库从其他版本的Python(例如,从Python38的site-packages移动到Python39的site-packages)中复制或移动过来。

希望对你有帮助!如果你有其他问题或想补充更多内容,请在评论中提出或编辑问题。

非常感谢!我尝试了很多不同的方法来解决这个错误(花了太多时间,真应该当初使用一个不同的代码检查工具),但你的解决方案2对我理解我做错了什么以及如何修复很有帮助。

0