CentOS 安裝Django以及運行報錯「No module named

前言

Django 是Python常用的web框架,這裡使用CentOS 6.X 系列進行安裝,安裝完成後,在運行使用時出現錯誤,後面進行說明。

安裝與運行

由於Django目前只支持python 2.7以上的版本,這裡使用的CentOS 6.X系列默認是python 2.6版本。進行python版本的升級操作。

安裝命令如下:

CentOS 安裝Django以及運行報錯“No module named _sqlite3”

[root@private django_dir]# python --version

Python 2.7.13

[root@private django_dir]# pip install django

Collecting django

Using cached Django-1.11.6-py2.py3-none-any.whl

Requirement already satisfied: pytz in /usr/local/lib/python2.7/site-packages (from django)

Installing collected packages: django

Successfully installed django-1.11.6

[root@private django_dir]#

安裝完成Django後,進行Django的使用,創建新項目:

CentOS 安裝Django以及運行報錯“No module named _sqlite3”

[root@private django_dir]# django-admin startproject myblog

[root@private django_dir]# ls -d myblog/

myblog/

[root@private django_dir]# ll myblog/*

-rwxr-xr-x 1 root root 804 Oct 22 14:58 myblog/manage.py

myblog/myblog:

total 12

-rw-r--r-- 1 root root 0 Oct 22 14:58 __init__.py

-rw-r--r-- 1 root root 3096 Oct 22 14:58 settings.py

-rw-r--r-- 1 root root 763 Oct 22 14:58 urls.py

-rw-r--r-- 1 root root 390 Oct 22 14:58 wsgi.py

[root@private django_dir]#

在運行'python manage.py runserver'時,出現如下報錯:

CentOS 安裝Django以及運行報錯“No module named _sqlite3”

[root@private blog]# python manage.py

Traceback (most recent call last):

File "manage.py", line 22, in

execute_from_command_line(sys.argv)

File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line

utility.execute()

File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute

django.setup()

File "/usr/local/lib/python2.7/site-packages/django/__init__.py", line 27, in setup

apps.populate(settings.INSTALLED_APPS)

File "/usr/local/lib/python2.7/site-packages/django/apps/registry.py", line 108, in populate

app_config.import_models()

File "/usr/local/lib/python2.7/site-packages/django/apps/config.py", line 202, in import_models

self.models_module = import_module(models_module_name)

File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in import_module

__import__(name)

File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/models.py", line 4, in

from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager

File "/usr/local/lib/python2.7/site-packages/django/contrib/auth/base_user.py", line 52, in

class AbstractBaseUser(models.Model):

File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 124, in __new__

new_class.add_to_class('_meta', Options(meta, app_label))

File "/usr/local/lib/python2.7/site-packages/django/db/models/base.py", line 325, in add_to_class

value.contribute_to_class(cls, name)

File "/usr/local/lib/python2.7/site-packages/django/db/models/options.py", line 214, in contribute_to_class

self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())

File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py", line 33, in __getattr__

return getattr(connections[DEFAULT_DB_ALIAS], item)

File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 211, in __getitem__

backend = load_backend(db['ENGINE'])

File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 115, in load_backend

return import_module('%s.base' % backend_name)

File "/usr/local/lib/python2.7/importlib/__init__.py", line 37, in import_module

__import__(name)

File "/usr/local/lib/python2.7/site-packages/django/db/backends/sqlite3/base.py", line 35, in

raise ImproperlyConfigured("Error loading either pysqlite2 or sqlite3 modules (tried in that order): %s" % exc)

django.core.exceptions.ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3

該報錯是由於Python的依賴包 sqlite-devel 導致的。修復方案為:

yum -y install sqlite-devel

然後重新進行./congure 和 make 、make install Python版本。再進行運行就可以了。

CentOS 安裝Django以及運行報錯“No module named _sqlite3”

CentOS 安裝Django以及運行報錯“No module named _sqlite3”

CentOS 安裝Django以及運行報錯“No module named _sqlite3”


分享到:


相關文章: