命令行运行Django项目报ModuleNotFoundError: No module named 'wtools2'
Django命令行运行报错ModuleNotFoundError: No module named 'wtools2'
在PyCharm中可正常运行的Django项目,通过命令行执行python manage.py runserver时触发如下错误:ModuleNotFoundError: No module named 'wtools2'。
报错堆栈信息
(venv) F:\ATSG\FrontEnd\wtoolgui\wtools2>python manage.py runserver Traceback (most recent call last): File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\core\management\base.py", line 354, in run_from_argv self.execute(*args, **cmd_options) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\core\management\commands\runserver.py", line 61, in execute super().execute(*args, **options) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\core\management\base.py", line 398, in execute output = self.handle(*args, **options) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\core\management\commands\runserver.py", line 68, in handle if not settings.DEBUG and not settings.ALLOWED_HOSTS: File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\conf\__init__.py", line 82, in __getattr__ self._setup(name) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\conf\__init__.py", line 69, in _setup self._wrapped = Settings(settings_module) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\conf\__init__.py", line 170, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "C:\Users\Muhammad Usman\.pyenv\pyenv-win\versions\3.10.0\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked ModuleNotFoundError: No module named 'wtools2' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "F:\ATSG\FrontEnd\wtoolgui\wtools2\manage.py", line 47, in <module> execute_from_command_line(sys.argv) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\core\management\__init__.py", line 419, in execute_from_command_line utility.execute() File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\core\management\__init__.py", line 413, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\core\management\base.py", line 367, in run_from_argv connections.close_all() File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\db\utils.py", line 208, in close_all for alias in self: File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\utils\connection.py", line 73, in __iter__ return iter(self.settings) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\utils\functional.py", line 48, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\utils\connection.py", line 45, in settings self._settings = self.configure_settings(self._settings) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\db\utils.py", line 144, in configure_settings databases = super().configure_settings(databases) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\utils\connection.py", line 50, in configure_settings settings = getattr(django_settings, self.settings_name) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\conf\__init__.py", line 82, in __getattr__ self._setup(name) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\conf\__init__.py", line 69, in _setup self._wrapped = Settings(settings_module) File "F:\ATSG\FrontEnd\wtoolgui\venv\lib\site-packages\django\conf\__init__.py", line 170, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "C:\Users\Muhammad Usman\.pyenv\pyenv-win\versions\3.10.0\lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked ModuleNotFoundError: No module named 'wtools2'
项目目录结构
根目录(F:\ATSG\FrontEnd\wtoolgui)
Directory: F:\ATSG\FrontEnd\wtoolgui Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 11/1/2023 8:14 PM .idea d----- 11/1/2023 4:28 PM mods d----- 11/1/2023 5:08 PM venv d----- 11/1/2023 8:09 PM wtools2 -a---- 11/1/2023 4:56 PM 1107 .gitignore -a---- 11/1/2023 4:56 PM 5698 az_requirements.txt -a---- 11/1/2023 4:56 PM 455 django.wsgi -a---- 11/1/2023 4:56 PM 1668 manage.py -a---- 11/1/2023 4:56 PM 3905 newsql queries.txt -a---- 11/1/2023 4:28 PM 18 README.md -a---- 11/1/2023 4:56 PM 6781 req.txt -a---- 11/1/2023 4:56 PM 7029 requirements.txt
wtools2子目录(F:\ATSG\FrontEnd\wtoolgui\wtools2)
Directory: F:\ATSG\FrontEnd\wtoolgui\wtools2 Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 11/1/2023 6:25 PM apps d----- 11/1/2023 6:29 PM celerydir d----- 11/1/2023 4:56 PM convex d----- 11/1/2023 6:25 PM libs d----- 11/1/2023 4:56 PM nvd3 d----- 11/1/2023 4:56 PM static d----- 11/1/2023 4:56 PM templates d----- 11/1/2023 8:09 PM __pycache__ -a---- 11/1/2023 6:17 PM 18216 constants.py -a---- 11/1/2023 4:28 PM 96 context_processors.py -a---- 11/1/2023 4:56 PM 871 crontab_config.py -a---- 11/1/2023 6:17 PM 6318 dinconfig.py -a---- 11/1/2023 4:56 PM 9570 function.py -a---- 11/1/2023 7:53 PM 1714 manage.py -a---- 11/1/2023 4:28 PM 1778 messages.py -a---- 11/1/2023 4:56 PM 17022 middleware.py -a---- 11/1/2023 4:56 PM 1322 requirements.txt -a---- 11/1/2023 4:56 PM 1789 routers.py -a---- 11/1/2023 8:09 PM 21630 settings.py -a---- 11/1/2023 4:28 PM 304 setup.py -a---- 11/1/2023 6:17 PM 1196 strings.json -a---- 11/1/2023 4:56 PM 5674 urls.py -a---- 11/1/2023 4:56 PM 24773 views.py -a---- 11/1/2023 4:56 PM 349 _celery.py -a---- 11/1/2023 4:56 PM 225 __init__.py
PyCharm Django设置

解决方案
问题核心是命令行环境下Python无法找到wtools2模块,PyCharm能正常运行是因为它自动将项目根目录加入了Python路径。可通过以下方式解决:
1. 切换到项目根目录执行命令
当前在F:\ATSG\FrontEnd\wtoolgui\wtools2目录执行命令,需切换到根目录F:\ATSG\FrontEnd\wtoolgui,运行根目录下的manage.py:
cd F:\ATSG\FrontEnd\wtoolgui python manage.py runserver
2. 手动添加项目根目录到Python路径
若必须在wtools2目录执行,先设置环境变量:
- Windows命令行:
set PYTHONPATH=F:\ATSG\FrontEnd\wtoolgui python manage.py runserver - PowerShell:
$env:PYTHONPATH = "F:\ATSG\FrontEnd\wtoolgui" python manage.py runserver
3. 检查manage.py的设置模块路径
打开wtools2目录下的manage.py,确认DJANGO_SETTINGS_MODULE是否为wtools2.settings。优先使用项目根目录下的manage.py,其配置更符合标准Django项目结构。
4. 确保激活虚拟环境
运行命令前激活项目虚拟环境venv:
F:\ATSG\FrontEnd\wtoolgui\venv\Scripts\activate
激活后再执行python manage.py runserver。
内容的提问来源于stack exchange,提问作者Usman Rafiq
相关产品推荐
相关产品推荐

