vscode 无法导入自己写的模块文件(.py)问题

问题主要是在 vscode中 python 的读入模块路径存在问题,下面先介绍下python的模块读入路径:

什么是PYTHONPATH?

PYTHONPATH是一个环境变量,用于指定Python解释器在导入模块时搜索模块的路径。当我们导入一个模块时,Python解释器首先会在系统默认的路径中搜索模块,然后再到PYTHONPATH中搜索。如果模块在这些路径中找不到,Python解释器将会抛出“ModuleNotFoundError”。

使用以下代码,查看系统所包含路径:

import sys
for a_path in sys.path:
    print(a_path)

vscode中两个重要的配置文件

launch.jsonsettings.jsonlaunch.json是使用vscode运行调试程序的启动设置,包括设置环境变量,使用哪个解释器,debug类型以及程序入口等等。settings.json是vscode程序的设置选项,包括快捷键,插件设置等。

解决方案一

lauch.json(在项目目录隐藏文件夹.vscode下面)中,添加"env"“envFile”两个条目:

"env": {"PYTHONPATH":"${workspaceRoot}"},
"envFile": "${workspaceRoot}/.env",

以上操作可以自动将项目根目录(即项目所在的文件夹的路径,在vscode 里面打开的最外面文件夹目录)添加到PYTHONPATH中,但还是无法访问根目录下子目录里面的模块文件,需要下一步操作:

在项目的根目录(与.vscode 文件同级目录下)新建文件.env,在.env文件中添加要包涵自定义库的路径即可:

PYTHONPATH=./my_module 

可以导入多个模块 windows系统 加 ; 分隔符,linux 是:分隔符(注意两个路径之间不要有多余的空格)

以上操作可以使得 按F5 或者 ctrl F5 运行程序没有问题, 但是使用右上角Run Python File 还是会报错,所以就尽量使用快捷键,方便有不会出错

注意:
vscode默认使用项目文件夹根目录作为工作目录cwd,这会使得子文件夹中的程序无法使用相对路径(既无法直接使用与程序所在同一目录下的文件),正确的解决办法是在launch.json中配置cwd为运行的文件所在目录:

"cwd": "${fileDirname}"

解决方案二

首先通过修改操作系统的环境变量来永久添加目录到PYTHONPATH

  1. 打开系统的环境变量设置,进入“高级系统设置”面板。
  2. 在“高级”选项卡下,点击“环境变量”按钮,打开环境变量设置对话框。
  3. 在“系统变量”列表中找到名为“PYTHONPATH”的变量,如果不存在,则点击“新建”按钮创建一个新的变量,并命名为“PYTHONPATH”。
  4. 编辑这个变量的值,将目标目录的路径添加到变量值的末尾,用分号分隔。
  5. 点击“确定”按钮保存设置。

然后修改vscode 里面的settings.json文件:

ctrl , 打开设置,在工作台 - 外观 里面,编辑settings.json,添加如下代码:

"terminal.integrated.env.windows": {"PYTHONPATH":"${workspaceFolder};${env:PYTHONPATH}"}

以上操作,需要重启vscode 生效,

该方法 无论使用快捷键F5 ctrl F5,还是使用右上角快捷方式,都可以正常运行。

综上推荐方案一,只是运行是使用快捷键即可。

参考:

1、windows下VScode修改PYTHONPATH变量方便导入模块_vscode怎么添加环境变量path_那时间总是跑得很潇洒的博客-CSDN博客

2、在 VS Code 中设置多个 PYTHONPATH - 个人文章 - SegmentFault 思否

3、彻底解决VScode中采用python import自定义模块显示unresolved import 问题 和 无法跳转到自定义模块函数定义_fdd096030079的博客-CSDN博客

4、python包导入问题:vscode配置PYTHONPATH环境变量_vscode pythonpath_?-ldl的博客-CSDN博客

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
要在VSCode配置paho.mqtt.client,你需要按照以下步骤操作: 1. 打开VSCode,并在左侧导航栏选择"Extensions"(或按下`Ctrl+Shift+X`)。 2. 在搜索框输入 "Python" 并安装 "Python" 扩展。 3. 在左侧导航栏选择 "Explorer"(或按下`Ctrl+Shift+E`),然后在文件浏览器打开你的Python项目文件夹。 4. 在项目文件创建一个新的文件夹,例如 "mqtt",然后在其创建一个新的Python文件,例如 "mqtt_client.py"。 5. 在 "mqtt_client.py" 文件导入 paho.mqtt.client 模块并开始编代码。例如: ```python import paho.mqtt.client as mqtt # 创建 MQTT 客户端 client = mqtt.Client() # 设置回调函数 def on_connect(client, userdata, flags, rc): print("Connected with result code " + str(rc)) # 订阅主题 client.subscribe("topic") def on_message(client, userdata, msg): print(msg.topic + " " + str(msg.payload)) # 设置回调函数 client.on_connect = on_connect client.on_message = on_message # 连接到 MQTT 代理服务器 client.connect("broker.hivemq.com", 1883, 60) # 循环运行 client.loop_forever() ``` 6. 现在你可以通过运行 "mqtt_client.py" 文件来测试你的代码。你可以使用终端或VSCode的集成终端来运行它。确保你的Python环境已经安装了paho-mqtt库,可以使用以下命令安装: ``` pip install paho-mqtt ``` 这样,你就可以在VSCode配置和使用paho.mqtt.client了。记得根据你的实际需求修改代码的主题、代理服务器地址等参数。祝你成功!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值