从根本上优雅地解决 VSCode 中的 Python 模块导入问题

这篇具有很好参考价值的文章主要介绍了从根本上优雅地解决 VSCode 中的 Python 模块导入问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

整体概述:
在我尝试运行 test_deal_file.py 时,我遇到了一个 ModuleNotFoundError 错误,Python告诉我找不到名为 controllers 的模块。这意味着我无法从 deal_file.py 中导入 read_excel 函数。

为了解决这个问题,我尝试了几种方法。
首先,我使用了相对导入,这在不改变当前工作目录的情况下是有效的,但一旦我切换了目录,这个方法就不行了。
接着,我尝试动态地将当前工作目录添加到 sys.path 中。
这样做虽然有效,但我觉得这种方法不够优雅。

所以,我决定采取一种更彻底的解决方案。
我通过修改 VSCode 的 settings.json 文件,设置了 PYTHONPATH 环境变量,确保了我的项目路径 my_project 被加入到模块搜索路径中。
我在settings.json中为不同的操作系统配置了terminal.integrated.env` 部分,然后重启了虚拟环境和集成终端。重新运行我的文件后,问题终于解决了。

通过这篇文章,我想和大家分享如何以一种更优雅的方式解决 Python 项目中的模块导入问题。
同时,我也介绍了如何在 VSCode 中管理项目环境变量和运行路径,这对于解决开发过程中的环境配置问题非常有帮助。希望我的经验能成为其他开发者在面对类似问题时的宝贵资源。

我的问题解决过程

(想直接看解决教程的直接跳到下一个标题内容)
我的项目结构是这样的

my_project/
├── controllers/
│   ├── __init__.py     
│   └── deal_file.py     
└── tests/
    ├── __init__.py      
    └── test_deal_file.py 

结果运行test_deal_file.py会出现报错信息:

# 报错信息
    from controllers.deal_file import read_excel
ModuleNotFoundError: No module named 'controllers'

我尝试了引用改成from ..controllers.deal_file import read_excel,terminal不切换目录可以运行成功,但切换目录后还是运行失败


我又尝试了

import sys
import os
sys.path.append(os.getcwd())

但是说实话,不是很美观


我决定从根本上解决这个问题。

首先我打印我所有运行路径

import sys
paths = sys.path
for path in paths:
    print(path)

输出结果果然,不包含我my_project的路径。如何把my_project路径添加到系统运行路径呢?方法如下:


vscode 解决模块导入问题的流程

1. 打开设置界面
在 VSCode 中,您可以通过点击左下角的齿轮图标然后选择 “Settings” 来打开设置界面。
另一种方式是使用快捷键 Ctrl + ,(在 Mac 上是 Cmd + ,)直接打开设置界面。vscode怎么导入python模块,CS技能,vscode,python,ide,import
2. 选择合适的工作区
打开setting界面后,上面有三个选项,对应着三种级别的设置文件工作区(workspace)、远程(remote)和用户(user)。每个级别的设置都有其特定的用途和作用范围。

用户设置(User settings): 位于全局级别,适用于您计算机上的所有 VSCode 实例。 路径通常在
~/.config/Code/User/settings.json(Unix/Linux)或
%APPDATA%\Code\User\settings.json(Windows)。 用于存储您希望在所有项目和环境中使用的全局配置。
工作区设置(Workspace settings): 特定于当前打开的工作区或项目。 路径通常在工作区根目录下的 .vscode/settings.json 文件中。 用于存储针对特定项目或工作区的配置,这些配置不会影响其他项目。
远程设置(Remote settings): 特定于远程开发环境,例如通过 SSH 或容器连接的远程服务器。 路径通常在 .vscode-remote/settings.json 文件中,这个文件位于您的本地工作区目录下。 用于存储针对远程开发环境的配置,如
SSH 连接设置、容器设置等。

现在你需要选择适合你的设置文件:
如果环境变量仅适用于特定项目,您应该在工作区设置文件中添加它们。
如果环境变量需要在所有项目中使用,您应该在用户设置文件中添加它们。
如果环境变量是针对远程开发环境的,您应该在远程设置文件中添加它们。
vscode怎么导入python模块,CS技能,vscode,python,ide,import

3. 打开对应工作区的setting.json页面
往下滑找到Edit in setting.json,点击打开
vscode怎么导入python模块,CS技能,vscode,python,ide,import
4. 编辑setting.json
接下来你要修改这个文件
vscode怎么导入python模块,CS技能,vscode,python,ide,import
下面内容复制到你的setting.json文件中,并保存

{
    "terminal.integrated.env.windows": {
        "PYTHONPATH": "/path/to/your/project"
    },
    "terminal.integrated.env.linux": {
        "PYTHONPATH": "/path/to/your/project"
    },
    "terminal.integrated.env.osx": {
        "PYTHONPATH": "/path/to/your/project"
    }
}

vscode怎么导入python模块,CS技能,vscode,python,ide,import

  1. 重启虚拟环境
    Unix/Linux 系统:source /path/to/venv/bin/activate
    Windows 系统:\path\to\venv\Scripts\activate
    vscode怎么导入python模块,CS技能,vscode,python,ide,import

  2. 关闭terminal集成终端
    在 VSCode 中,关闭当前打开的集成终端。
    vscode怎么导入python模块,CS技能,vscode,python,ide,import

  3. 打开新的集成终端:
    通过点击 VSCode 顶部的 “Terminal” 菜单或者使用快捷键 Ctrl+ (在 Mac 上是Cmd+ ) 来打开一个新的集成终端窗口。
    vscode怎么导入python模块,CS技能,vscode,python,ide,import

  4. 重新运行你的文件
    可以看到你的项目路径已经添加到环境,项目也可以正常运行了👌
    vscode怎么导入python模块,CS技能,vscode,python,ide,import文章来源地址https://www.toymoban.com/news/detail-854326.html

到了这里,关于从根本上优雅地解决 VSCode 中的 Python 模块导入问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python黑客代码雨:实现包括中文等的多种语言,全屏幕显示,从根本解决中文不显示问题,有完整可执行代码

    完整代码放在最下面 上结果图: 中文无法显示的亚子:(也挺好看的哈哈) 正题: 代码能跑但是中文是这种乱码或者黑屏的情况主要是因为没有指定字体或者字体是你电脑没有的 如何找到自己电脑的字体呢,代码如下: 将获取的字体复制到一个word文档或者其他方式都可以

    2024年02月12日
    浏览(46)
  • 优雅解决Python中matplotlib绘图时汉字显示不正常的问题

    我们使用了如下代码,为了在图表上绘制中文 图表最后出现了这种方框形式的错误。 并报了如下错误 这种报错,实际是一种警告,并不影响程序的正常运行,所以最后也能出效果图,但无法正常显示中文。其实就是matplotlib 库内没有 SimHei 字体,所以需要下载相关文件。 下

    2024年04月25日
    浏览(37)
  • 解决vscode找不到Python自定义模块,报错No module named ‘xxx‘

    笔者最近在学习python过程中,把在pycharm运行成功的项目放在vscode中,发现一些报错,比如找不到笔者自定义的模块,参考了一些说法与办法,现将解决方法记录于此。 vscode之所以找不到自定义模块,与其 PYTHONPATH 有关。笔者的目录结构如图所示: 经过实践,发现如果do_mys

    2023年04月18日
    浏览(46)
  • python cv2导入问题解决过程

    问题描述:在pycharm中利用库安装工具无法导入opencv-python 解决: 1、opencv-python的下载地址 Links for opencv-python (tsinghua.edu.cn) 注意python版本,cp38是python3.8版本,区分win32和win64 2、下载之后,找到python库的电脑位置,将上述安装文件复制在python库中(Libsite-packages) 3、打开pycha

    2024年02月04日
    浏览(41)
  • 电脑C盘红了怎么办?—— 保姆级从根本上解决问题(C盘扩容)

    大家的电脑使用久了,可能会出现C盘红了 作者看了不少帖子C盘红了的解决方案都是 删除缓存 磁盘清理 之类的解决方案。可能经过处理后,C盘确实没有红了,还是还是徘徊在爆红的边缘。经过一段时间的使用后,C盘又红了,反反复复的出现这个问题。 所以作者的解决方案

    2024年02月10日
    浏览(34)
  • VS code中python相对包导入问题解决

    我的项目文件结构为 其中,module1.py就是实现了一个简单的加法: 而folder2里面的call.py尝试调用上面这个函数: 在包导入这方面,我一开始是尝试使用相对包导入,为: 但是出现了下面的错误: ImportError: attempted relative import with no known parent package 之后我尝试了配置launch.json文

    2024年04月28日
    浏览(35)
  • Blender Three.js 智慧3D机房开发 模型创建与导入中的常见问题与解决方案

    目录 机房效果展示 可能出现的问题及解决方法 Three. js服务器运行环境搭建及文件配置 使用Node.js搭建本地服务器 文件配置  Blender材质处理 Blender导出GLTF模型出现材质丢失 Three.js玻璃材质制作  Blender导出glTF格式模型 Three. js模型显示场景的设置 总结   机房正面图: 机房背面

    2024年02月05日
    浏览(94)
  • VScode import导入自己的模块文件路径错误ModuleNotFoundError: No module named ‘v0‘

    VScode的python报错 ModuleNotFoundError: No module named ‘v0’ 我的工作区文件夹打开的是server,文件相对路径是: server/v0/train_ddpg.py,其中的部分导入import代码如下,v0是上一级文件夹 from v0.cli import cli_train from v0.config import config_dict 不想修改代码,因为需要改的地方太多了,而只通过

    2024年02月04日
    浏览(33)
  • 一文完美解决vscode python输出中文乱码问题

    网上有很多解决方案,但有些是不靠谱的,比如将“run in terminal”设为true,这个 只是将内容输出到终端(cmd)上,并未真正解决问题 。还有通过更改系统区域设置,即将“使用Unicode UTF-8提供全球语言支持”那项打勾,这个 确实能解决乱码问题但会带来一些衍生问题 ,比如打

    2024年02月05日
    浏览(46)
  • python安装pygame模块可能问题解决

    一般我们添加python中模块有两种方法 1、 在开发软件pycharm中文件中设置-项目 然后点击加号,输入自己要安装的模块,如pygame 但是我这种安装存在可能安装失败,但是简单 第二种就是用系统cmd命令进行安装 win+R打开cmd,先输入pip install wheel安装wheel工具,检查pip是不是最新版

    2024年02月12日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包