[英]python manage.py runserver - Error: no module named registration
[英]python manage.py runserver error : ModuleNotFoundError: No module named 'settings'
我正在開始使用 python,並且在使用 django 2.1 和 python 3.7 時遇到了很多其他人似乎也遇到過的問題。
以下是我到達這里的過程:
啟動虛擬環境
開始了一個django項目
試圖運行:
python manage.py 運行服務器
我一直收到錯誤消息:ModuleNotFoundError: No module named 'settings'
我已經廣泛研究並在以下 SO 問題中找到了一些解決方案,但對我來說都不是有效的解決方案。 有人遇到過這個問題嗎?
任何見解都會有所幫助。 提前致謝。
編輯:我的 manage.py 文件如下所示:
#!/usr/bin/env python import os import sys
if __name__ == '__main__':
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mytodoapp.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
) from exc
execute_from_command_line(sys.argv)
我的文件結構如下:
mytodo應用程序
mytodo應用程序
>__init__.py >settings.py >urls.py >wsgi.py
管理.py
打開你的項目文件夾。
搜索 wsgi.py 文件並添加此行。
from django.conf import settings.
然后保存。
找到你的 manage.py 文件編輯
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'projectname.settings')
到
os.environ['DJANGO_SETTINGS_MODULE' ]='projectname.settings'
保存並解決 walla 問題。
cd
到你的應用程序文件夾,然后運行服務器
python manage.py runserver.
在我的例子中,問題最終是因為我以某種方式修改了樹結構,因此manage.py
無法訪問它需要的某些資源。 我的解決方案最終重新創建了一個廢棄的 django 項目並查看了項目結構。 你應該遵循這個結構
yourproject/
├── db.sqlite3
├── manage.py
└── yourproject/
├── __init__.py
├── app1/
├── settings.py
├── urls.py
└── wsgi.py
manage.py 位於內部yourproject
文件夾之外似乎很重要。
我遇到了類似的問題。 但是我在使用 Anaconda 時創建了 django 項目。 使用以下命令安裝 sqlparse 后,問題就解決了。
conda install sqlparse
django 2.1 需要 python 3.5+ 支持 manage.py 文件中的語法。
激活您的環境並驗證您的 python 是 3.7 如果不是,則在創建 virtualenv 時指定您的 python 版本。
virtualenv -p /path/to/your/python3.7 code
嘗試安裝“sqlparse”。 它將在 Anaconda 中運行。
pip install sqlparse
嘗試打開您的目錄並右鍵單擊該設置。 當你用pycharm打開它然后再次在終端上運行代碼時
這是你的目錄應該如何出現 nameofyourproject\
|--初始化.py
|-- 管理.py
|-- 設置.py
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.