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

编程入门 行业动态 更新时间:2024-10-24 08:20:50

WSL<a href=https://www.elefans.com/category/jswz/34/1771403.html style=环境中Pycharm的python控制台中报错 ModuleNotFoundError: No module named ‘xxx‘(WSL+Pycharm环境搭建系列之四)"/>

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

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

  • 0.前言
  • 1.问题现象
  • 2. 问题分析
  • 3. 解决办法

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 runcodecoro = func()File "<input>", line 6, in <module>File "/venv/csdntestdjango/lib/python3.9/site-packages/django/__init__.py", line 19, in setupconfigure_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 _setupself._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_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "<frozen importlib._bootstrap>", line 1030, in _gcd_importFile "<frozen importlib._bootstrap>", line 1007, in _find_and_loadFile "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removedFile "<frozen importlib._bootstrap>", line 1030, in _gcd_importFile "<frozen importlib._bootstrap>", line 1007, in _find_and_loadFile "<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控制台设置,添加路径映射


映射的规则大致是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 runcodecoro = func()File "<input>", line 6, in <module>File "/venv/csdntestdjango/lib/python3.9/site-packages/django/__init__.py", line 19, in setupconfigure_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 _setupself._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_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "<frozen importlib._bootstrap>", line 1030, in _gcd_importFile "<frozen importlib._bootstrap>", line 1007, in _find_and_loadFile "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 680, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 850, in exec_moduleFile "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removedFile "/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控制台,重新打开,完美运行。
这里需要注意一下,需要重新打开控制台,点击重新运行或者ctrl+F5没有任何作用。

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

更多推荐

WSL环境中Pycharm的python控制台中报错 ModuleNotFoundError: No module named ‘xxx‘(WSL+Pychar

本文发布于:2024-02-07 05:32:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1753515.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:环境   控制台   报错   之四   系列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!