[英]Django: 'python manage.py runserver' gives "Segmentation fault" error
我剛剛安裝了 Python 和 Django,同時按照 Django 站點上的本教程進行操作,到目前為止的所有內容都運行良好並且沒有產生任何錯誤。
現在我在“開發服務器”部分,在manage.py
所在的項目目錄中運行命令python manage.py runserver
時出現此錯誤:
分段故障
沒有其他的。
任何人都知道這里發生了什么以及我該如何解決這個問題?
如果重要的話,這是我的 manage.py 文件( from django.core.management...
行中的django
在我的 IDE (PyCharm) 中被標記為錯誤並且錯誤顯示Unresolved reference 'django'
):
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "davilex.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
這發生在我的 Django 項目中,我有很多具有 C 擴展的包。 運行完Ubuntu系統包更新后,突然發現manage.py
命令seg出錯了。 事實證明,一些 C 擴展將自己鏈接到系統庫,如果包更新更改了這些庫,可能會導致 C 擴展崩潰。
因為我已經在 Python virtualenv 中安裝了所有東西,所以我只是刪除並重新生成它,這修復了錯誤。
我幾乎一字不差地按照教程遇到了同樣的問題(除了我在 Windows 中使用 git-bash,並使用“virtualenv”代替“mkvirtualenv”和“source projectdir/Scripts/activate”代替“workon projectdir” .
跑步
python -vvvvv manage.py runserver
警告我有需要運行的遷移(教程說要忽略)
python manage.py migrate
在某些情況下,這可能不是您可以真正跳過的步驟,不管教程怎么說。 在此之后,runserver 正常運行。
我在 mac 上設置項目時遇到了類似的問題。 最后,由於在 DATABASES 中設置的值,結果變成了它。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'blue9',
'USER': 'root',
'PASSWORD': 'root',
'PORT': '',
'HOST': ''
}
“PORT”和“HOST”的空值導致了問題。 這些鍵不應具有空值。 要么提供有限值,要么根本不指定它們。
我認為這個問題與數據庫配置有關,第一步檢查 postgres 庫安裝配置
pip install psycopg2-binary==2.8.5
第二步檢查 django 項目設置中的數據庫配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': '<database_name>',
'USER': '<user_name>',
'PASSWORD': '<password>',
'HOST': '<host-name>',
'PORT': '<port number : default : 5432>',
}
}
安裝 PyMysql:
python3 -m pip install PyMysql
設置添加 mysql conf:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'your database name', 'USER': 'your user', 'PASSWORD': 'your pwd', 'HOST': 'ip', 'PORT': 'port', } }
__init__.py 添加import pymysql
pymysql.install_as_MySQLdb()
享受~
只需在運行遷移或運行服務器命令之前輸入sudo。 例如,如果要運行遷移,請使用
sudo python manage.py migrate
或者如果你想運行服務器
sudo python manage.py runserver
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.