WSL环境中Pycharm的python控制台中报错 ModuleNotFoundError: No module named ‘xxx‘(WSL+Pycharm环境搭建系列之四)

2023-11-13

WSL环境中Pycharm的python控制台中报错 ModuleNotFoundError: No module named 'xxx'

0.前言

经过前面几次的努力,我们基本上完成了环境中的搭建
本次我们解决一个基本上都会遇到的一个问题
那就是在WSL环境中运行python控制台调试django,控制台会报错: ModuleNotFoundError: No module named ‘xxx’

1.问题现象

其中的xxx是项目的名称,这里是csdntestdjango

/venv/csdntestdjango/bin/python /mnt/d/Program Files/JetBrains/PyCharm 2022.1.3/plugins/python/helpers/pydev/pydevconsole.py --mode=client --host=127.0.0.1 --port=41977 
import sys; print('Python %s on %s' % (sys.version, sys.platform))
import django; print('Django %s' % django.get_version())
sys.path.extend(['F:\\localgit\\csdntestdjango', 'D:\\Program Files\\JetBrains\\PyCharm 2022.1.3\\plugins\\python\\helpers\\pycharm', 'D:\\Program Files\\JetBrains\\PyCharm 2022.1.3\\plugins\\python\\helpers\\pydev'])
if 'setup' in dir(django): django.setup()
import django_manage_shell; django_manage_shell.run("F:/localgit/csdntestdjango")
PyDev console: starting.
Python 3.9.9 (main, Dec  7 2022, 13:29:41) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Django 3.2.11
Traceback (most recent call last):
  File "/mnt/d/Program Files/JetBrains/PyCharm 2022.1.3/plugins/python/helpers/pydev/pydevconsole.py", line 364, in runcode
    coro = func()
  File "<input>", line 6, in <module>
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/opt/python39/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'csdntestdjango'

2. 问题分析

聚焦这两行

sys.path.extend(['F:\\localgit\\csdntestdjango', 'D:\\Program Files\\JetBrains\\PyCharm 2022.1.3\\plugins\\python\\helpers\\pycharm', 'D:\\Program Files\\JetBrains\\PyCharm 2022.1.3\\plugins\\python\\helpers\\pydev'])
if 'setup' in dir(django): django.setup()
import django_manage_shell; django_manage_shell.run("F:/localgit/csdntestdjango")

所有的路径都是Windows的路径,而非Linux路径,而我们的控制台实际上启动在WSL环境中

3. 解决办法

打开django控制台设置,添加路径映射

django控制台
映射的规则大致是F:盘对应/mnt/f,其他路径与windows一致,相当于将windows文件系统挂载到了WSL子系统中(用于运行程序)
路径映射
确定后重启python控制台,不再报该错误。但是报了新的错误,这个错误与外置配置文件相关,没有做外置文件配置的可忽略

/venv/csdntestdjango/bin/python /mnt/d/Program Files/JetBrains/PyCharm 2022.1.3/plugins/python/helpers/pydev/pydevconsole.py --mode=client --host=127.0.0.1 --port=44923 
import sys; print('Python %s on %s' % (sys.version, sys.platform))
import django; print('Django %s' % django.get_version())
sys.path.extend(['/mnt/f/localgit/csdntestdjango', '/mnt/d/Program Files/JetBrains/PyCharm 2022.1.3/plugins/python/helpers/pycharm', '/mnt/d/Program Files/JetBrains/PyCharm 2022.1.3/plugins/python/helpers/pydev'])
if 'setup' in dir(django): django.setup()
import django_manage_shell; django_manage_shell.run("/mnt/f/localgit/csdntestdjango")
PyDev console: starting.
Python 3.9.9 (main, Dec  7 2022, 13:29:41) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-44)] on linux
Django 3.2.11
Traceback (most recent call last):
  File "/mnt/d/Program Files/JetBrains/PyCharm 2022.1.3/plugins/python/helpers/pydev/pydevconsole.py", line 364, in runcode
    coro = func()
  File "<input>", line 6, in <module>
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/__init__.py", line 19, in setup
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/conf/__init__.py", line 82, in __getattr__
    self._setup(name)
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/conf/__init__.py", line 69, in _setup
    self._wrapped = Settings(settings_module)
  File "/venv/csdntestdjango/lib/python3.9/site-packages/django/conf/__init__.py", line 170, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/opt/python39/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/mnt/f/localgit/csdntestdjango/csdntestdjango/settings.py", line 16, in <module>
    conf = json.load(open("config/config.json", "r", encoding="utf-8"))
FileNotFoundError: [Errno 2] No such file or directory: 'config/config.json'

其实这个问题之前我有另一篇帖子已经讲的很清楚了,这里不详细解释。
解决该问题非常简单 只需要在django控制台设置中,正在启动脚本开头添加一句

import os; os.chdir([WORKING_DIR_AND_PYTHON_PATHS][0])

django控制台正在启动脚本
完成设置后,关闭django控制台,重新打开,完美运行。
这里需要注意一下,需要重新打开控制台,点击重新运行或者ctrl+F5没有任何作用。
在这里插入图片描述

如果你觉得我的文章还不错,确实解决了您的一些问题的话,麻烦点个赞、收藏、加粉丝,如果有什么问题可以在评论区交流,我将及时答复或者做出修正,谢谢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSL环境中Pycharm的python控制台中报错 ModuleNotFoundError: No module named ‘xxx‘(WSL+Pycharm环境搭建系列之四) 的相关文章

随机推荐

  • Java中的反射

    Java中的反射 Java反射是指在运行时动态地获取和操作类的信息 包括类的属性 方法和构造函数等 通过反射机制 我们可以在运行时检查类的信息 并动态创建对象 调用方法和访问属性 而不需要在编译时确定类的具体信息 Java反射机制提供了以下
  • 写一本技术书籍

    作者 董伟明 链接 https zhuanlan zhihu com p 22207407 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 在过去的8个多月的时间里面 我完成了一本504页的 Python W
  • stm32f1系列 使用前需在keil配置中添加预定义符号STM32F10X_HD,USE_STDPERIPH_DRIVER

    stm32f1系列 使用前需在keil配置中添加预定义符号STM32F10X HD USE STDPERIPH DRIVER 因为在stm32系列建立底层库时 为了逻辑方便管理头文件 将库函数的头文件都放在了stm32f10x conf h
  • docker镜像(Ubuntu)安装jdk

    1 查找干净的Ubuntudocker search ubuntu2 下载镜像docker pull ubuntu3 编辑dockerfile文件 文件内容开始 FROM ubuntu latestMAINTAINER guodongADD
  • [ASP.NET MVC 小牛之路]17 - 捆绑(Bundle)

    本文介绍 MVC 4 提供的一个新特性 捆绑 Bundle 一个在 View 和 Layout 中用于组织优化浏览器请求的 CSS 和 JavaScript 文件的技术 本文目录 了解VS默认加入的脚本库 当我们创建一个基本模板的 MVC
  • 数据可视化第四章答案

    热狗大赛大胃王前三 from pyecharts import Pie import pandas as pd hotplace pd read csv hot dog places csv header None hotplace pd
  • Spring框架中的Resource接口是什么,以及它在加载和访问资源时的关键作用

    文章目录 什么是 Resource 接口 使用 Resource 加载资源 使用 Resource 访问文件系统资源 总结 个人主页 程序员 小侯 CSDN新晋作者 欢迎 点赞 评论 收藏 收录专栏 Java框架 文章内容 Resource
  • 告别枯燥,247个Python经典实战案例集合(附代码)

    今天为大家推荐一个Python从入门到进阶的实战案例合集 共计247个案例 185页内容 从此告别枯燥 60秒学会 个 例 系统学习Python 从 门到 师 所有均含有实例代码 可直接运行 感受python之美 用最短的代码实现 02 P
  • 基于STM32单片机的智能家居毕设

    文章目录 一 硬件选型 1 硬件清单 2 硬件展示 部分 二 效果展示 1 整体效果展示 2 显示屏 触摸 效果展示 三 功能分析 1 系统总体结构框图 2 主要包含的功能 四 怎么做 1 STM32单片机部分 2 语音识别与播报部分 3
  • 【JeecgBoot】点击返回关闭当前页面(tab)且返回上一层

    首先要在你需要关闭得页面组件里面加上inject closeCurrent 如下图位置 之后写一个触发函数 这里面得reBack即是返回函数
  • HTMl中的各种标签(常见)

    HTML的元素以开始标签开始 结束标签结束 被它们包起来 且一半可以嵌套 分类 html的标签主要分为双标签和单标签 双标签
  • xmL 特殊符号转换

    一共有五个 所有的特殊字符对应的编码 特殊字符 代替符号 特殊原因 amp 每一个代表符号的开头字符 gt gt 标记的结束字符 lt lt 标记的开始字符 quot 设定属性值 apos 设定属性值 代替符号都以 开始 都包含分号 以分号
  • CUDA中动态Global Memory分配和操作

    CUDA中动态Global Memory分配和操作 CUDA中动态Global Memory分配和操作 1 Heap Memory Allocation 2 Interoperability with Host Memory API 3 E
  • vue中利用自定义指令修改elementUI对话框到顶部的距离

    Vue directive alterELDialogMarginTop 修改elementUI中el dialog顶部的距离 传入值eg marginTop 5vh inserted el binding vnode el firstEl
  • python基于机器学习的姓名预测性别网页app开发

    前言 做这个项目的起因是之前csdn给我推荐了一个问答 基于机器学习的姓名预测性别的手机app开发 我点进去发现已经有人回答了 链接点进去一看 好家伙 这不是查表算概率吗 和机器学习有半毛钱关系 而且我觉得用姓名预测性别挺扯淡的 去查了一下
  • ##顺序表 编码##

    ifndef LIST H define LIST H class List public List int size List 析构函数 void ClearList 清空线性表 bool ListEmpty 判断线性表是否为空 int
  • VXLAN 大二层网络构建实战

    1 VXLAN 大二层网络 1 VXLAN背景 传统vlan可划分1 4094个子网 如果租户数量超过4094 就需要使用vxlan了 vxlan支持1670万个隔离网络通信 可以满足众多不同租户设计自己的内部网络 租户申请的云服务器来自不
  • 简单实用的数据库文档生成器

    哈喽 大家好 我是指北君 大家有没有过这样的经历 在DeadLine即将来临之际 文档尚未完成 面对纷繁复杂的数据库中各种表 视图 关联 存储过程等 你都不知道如何清晰准确的描述他们 不得不一个个打开表 视图 存储过程等查看 甚至可能因为疏
  • springboot自定义kafka消费者KafkaListenerContainerFactory配置说明和实验

    1 说明 实验一下 在spring boot中自行创建kafkaConsumer实例 进行消费 根据配置的不同 得出相应的结果 此例中 我使用 kafkaListenerContainerFactory自行创建了kafkaListener实
  • WSL环境中Pycharm的python控制台中报错 ModuleNotFoundError: No module named ‘xxx‘(WSL+Pycharm环境搭建系列之四)

    WSL环境中Pycharm的python控制台中报错 ModuleNotFoundError No module named xxx 0 前言 1 问题现象 2 问题分析 3 解决办法 0 前言 经过前面几次的努力 我们基本上完成了环境中的