VS Code中,import自定义python文件,无法智能提示的问题

这种问题大多出现的情况是,在VS Code打开后的根目录下,加入了多级文件夹,通常多级文件夹内的自定义文件在import后无法被正确识别。如下图所示:
这里PY是根目录,ui_FormHello.py处于/PY/PyQt/demo2_2文件夹下
这时在appMain1.py中import ui_FormHello, VS Code中提示无法识别
解决方案有如下两种:

1.修改PYTHONPATH

PYTHONPATH 的作用官网介绍如下:

In VS Code, PYTHONPATH affects debugging, linting, IntelliSense, testing, and any other operation that depends on Python resolving modules.

可见若 PYTHONPATH 未准确设置的话,会影响 VS Code 的智能提示和代码风格检查、单元测试等,如对导入模块的解析。
对于一下给定的目录结构:

workspaceRootFolder
  .vscode
  |...OtherFolders
  |codeFolder
      |-__init__.py
      |...OtherLibFiles

在workspaceRootFlolder下创建一个文件,命名为 .env,在此空文件中添加一行:

PYTHONPATH = codeFolder
在这里使用你自己的目录路径替代codeFolder

在settings.json添加 python.envFile 设置:

“python.envFile”: “${workspaceFolder}/.env”

然后重启 VS Code

2.修改settings.json

在2019.11.21的更新后,微软官网给出了另一种更为便捷的解决方案How to resolve customer imports

需要解析多级目录下的自定义模块,只需在.vscode/settings.json中,设置
python.autoComplete.extraPaths 属性和python.analysis.extraPaths属性,在其中添加需要解析的目录 ./src,这里src替换为你自己的文件路径

    "python.autoComplete.extraPaths": [
        "./src"
    ],
    "python.analysis.extraPaths": [
        "./src"
    ]

上述两种方法任选其一,均可解决问题。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在最高的层次上,Python 的整体架构可以分为四个主要的部分,整个架构如 图 1 所示。在左边,是 Python 提供的大量的模块,库以及用户自定义的模块。 比如在执行 import os 时,这个 os 就是 Python 内建的模块,当然用户还可以通 过自定义模块来扩展 Python 系统。在本系列文章,我们不会对这一部分进行 过多的考察。 在图的右边,是 Python 的运行时环境,包括对象/类型系统(Object/Type structures),内存分配器(Memory Allocator)和运行时状态(Current State of Python)。运行时状态维护了解释器在执行字节码时在不同的状态之间切换 的动作,我们可以将它视为一个巨大而复杂的有穷状态机。内存分配器则全权负 责 Python 创建对象时对内存的申请工作,实际上它就是 Python 运行时与 C malloc 的一层接口。而对象/类型系统则包含了 Python 存在的各种内建对 象,比如整数,list 和 dict 等等 在间的部分,可以看到 Python 的核心,解释器(interpreter)。在解释 器,箭头的方向指示了 Python 运行时的数据流方向。其 Scanner 对应词法 分析,将文件输入的 Python 源代码或从命令行输入的一行行 Python 代码切分为 一个一个的 token;Parser 对应语法分析部分,在 Scanner 的分析结果上进行语 法分析,建立抽象语法树(AST);Compiler 是根据建立的 AST 生成指令集合— —Python 字节码(byte code),就像 Java 编译器和 C#编译器所做的那样;最 后由 Code Evaluator 来解释并执行这些字节码。因此,Code Evaluator 又可以 被称为执行引擎。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值