当前位置: 首页 > 知识库问答 >
问题:

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

微生鸿轩
2023-03-14

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

我对这个问题做了很多令人沮丧的研究,发现很多人都有类似的问题。然而,我不能得到任何列出的解决方案的工作,但许多我不理解甚至尝试。我尝试卸载并重新安装VScode、pylint和python扩展本身。我尝试过用launch.json和settings.json做一些事情,但我以前从未对json文件做过任何事情,我做的任何事情似乎都没有什么不同。我只安装了一个python环境。我已经尝试用“文件-

我看到的另一个解决方案是添加一行

init-hook='import sys; sys.path.append("/path/to/root")'

我想我已经这样做了,但还是没有解决我的问题。然而,几乎没有解释这个文件是什么,在哪里可以找到它,或者它到底需要什么路径。我只是搜索了一下。在我的文件浏览器中找到了一个名为“pylintrc”的文件,这就是我放这行代码的地方。“根目录路径”是我通过导航到子文件夹中包含所有库的文件夹,然后复制/粘贴文件路径得到的。

下面是如何导入库的示例。这有效,只是不像派林或VS代码那样多。

#Custom libraries
sys.path.append(os.path.html" target="_blank">join( '../..', 'common', 'appdata'))
import appdata

“无法导入'应用数据'pylint(导入错误)”在'导入'上显示为错误

如果我尝试调试,我会收到消息

“发生异常:导入错误没有名为'appdata'的模块”

我感谢可以给予的任何帮助。谢谢。

共有3个答案

金宣
2023-03-14

实际上,正如@Brett在上面建议的,最好的方法是使用一个. pylintrc文件。

在我的例子中,我添加了。pylintrc文件添加到我的项目的根目录,并配置了一个钩子,如下所示:https://stackoverflow.com/a/3065082

端木承业
2023-03-14
匿名用户

. pylintrc文件是Pylint的配置文件。Pylint记录了它如何找到pylintrc文件。

问题是Pylint不执行你的代码,所以Pylint不知道你对sys.path自定义操作。所以你需要做的是弄清楚如何告诉Pylint将你代码中的文件夹视为sys.path的一部分。一种方法是指定PYTHONPATH,另一种方法是在. pylintrc文件中指定它。

p . s .:< code > sys . path . append(OS . path . join('../..'、' common '、' appdata ')应为< code > sys . path . append(OS . path . join(' .. '), '..',' common ',' appdata ')。

陈成济
2023-03-14

首先是一些问题(因为我无法评论): 1.你是否使用了python3的多个版本(比如一次我通过python3.8安装了一个软件包,但我使用的是python3.9,所以当我尝试导入它时,我得到了一个模块不明创始人,但后来我解决了它),如果是这样,那么你安装了多少个版本2。库的系统路径是什么(如果您不想共享该路径,则可以共享示例路径)?3. 自定义库所在的文件夹中是否有__init__.py文件(例如:module.py 的路径:C:用户\随机\文档\模块容器\module.py 如果 module.py 是自定义模块,则__init__.py应位于模块容器中)?

根据您的问题,这个问题有2种不同的解决方案(这2种解决方案与上面提到的问题相关联):

解决方案1:确保模块位于包含名为__init__的空文件的文件夹中。py</code>如果没有,则创建<code>__init__。py</code>并使用IDE将其放入包含模块的文件夹中,在您的示例中为VScode。这确保Python搜索文件夹中的文件,以找到与要导入的文件的名称匹配的文件。

解决方案2:如果您通过不同版本的python安装了不在标准库中的模块,而该版本不是您当前使用的python版本(例如,通过python3.8安装随机模块,但尝试通过python3.9导入它),那么您可以复制或移动其他版本的python中的包(例如,将python38中的站点包中的随机模块移动到python39中的站点包)

希望,这有帮助!如果你对这个问题还有什么想补充的,你可以评论或编辑这个问题。

 类似资料:
  • 我有一个django项目。在视图中。py文件,我尝试像这样导入我的模型(或来自MYAPP的任何东西): 它向我显示了一条警告“无法导入'MYAPP.~~'”。我的项目仍在正常运行,但VSCode报告了许多错误,所以我不知道这是不是真的。 我该如何修复它?谢谢^^。

  • 问题内容: 我需要在项目中导入Java类。我需要导入的类在具有绝对路径的JAR文件中 现在在我的源文件(Test.java)中 我正在与 它显示了stdlib不存在的错误。 我的导入语句正确还是类路径有问题?此import语句不应该导入JAR文件中存在的所有类吗? 我没有使用任何IDE,我的操作系统是Linux。 问题答案: import语句从jar文件而不是jar文件本身导入类。 形式的导入声明

  • 启动层java初始化期间发生错误。朗,模块。FindException:无法识别模块格式:C:\Users\pinto\Downloads\fontawesome-free-6.1.1-desktop。邮政编码 这是我的导入和悬停错误。

  • 我在导入/导出类时遇到了麻烦。它看起来如此受打击和错过。有时它起作用,有时它不起作用。 我收到以下控制台错误:未捕获的引用错误:测试未在main.js定义: 我已经把这个测试上传到网上http://tibbotts.epizy.com/testClassImport/index.html 我尝试过将“/test.js”更改为“/test.js”、““/test”等。。 我曾尝试在web上搜索解决方

  • 我正在为Python中的Robot Framework编写一个自定义测试库,我想这样导入它: 我把包含源代码的文件夹放在上,但我仍然收到错误: CustomLibrary类在初始化中定义。py文件,如AppiumLibrary中的: 我该如何解决这个问题,以便将其导入Robot框架?我希望将类定义保留在init文件中。