[英]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.