[英]Pysqlite2 error while starting django project
Im trying to start a django project from scratch but i have an error that says "ImportError: No Module Named 'pysqlite2'" 我试图从头开始一个django项目,但是我遇到一个错误,提示“ ImportError:No Module Named'pysqlite2'”
I'm using Python 3.6.0. 我正在使用Python 3.6.0。 I will write steps which im following 我将编写以下步骤
Creating project
> django-admin startproject testproject
Trying to start an app
> python manage.py startapp demo
Immediately after enters that command, it returns me a long text which includes error's path etc.
Traceback (most recent call last):
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 34, in <module>
from pysqlite2 import dbapi2 as Database
ModuleNotFoundError: No module named 'pysqlite2'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 36, in <module>
from sqlite3 import dbapi2 as Database
File "/usr/local/lib/python3.6/sqlite3/__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "/usr/local/lib/python3.6/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 367, in execute_from_command_line
utility.execute()
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 341, in execute
django.setup()
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/__init__.py", line 27, in setup
apps.populate(settings.INSTALLED_APPS)
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/apps/registry.py", line 108, in populate
app_config.import_models(all_models)
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/apps/config.py", line 199, in import_models
self.models_module = import_module(models_module_name)
File "/home/berkin/pythonenv/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 978, in _gcd_import
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 655, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 205, in _call_with_frames_removed
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/contrib/auth/models.py", line 4, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/contrib/auth/base_user.py", line 52, in <module>
class AbstractBaseUser(models.Model):
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/models/base.py", line 119, in __new__
new_class.add_to_class('_meta', Options(meta, app_label))
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/models/base.py", line 316, in add_to_class
value.contribute_to_class(cls, name)
File "/home/berkin/pythonenv/local/lib/python3.6/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 "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/__init__.py", line 33, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/utils.py", line 211, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/utils.py", line 115, in load_backend
return import_module('%s.base' % backend_name)
File "/home/berkin/pythonenv/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/berkin/pythonenv/local/lib/python3.6/site-packages/django/db/backends/sqlite3/base.py", line 39, in <module>
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'
What i tried? 我尝试了什么? - I installed sqlite3-dev with using sudo apt get ... - I tried to install pip install pysqlite2 - I tried to alter source.py which is inside the virtual env folder but it wasnt worked. -我使用sudo apt get安装了sqlite3-dev ...-我尝试安装pip install pysqlite2-我试图更改位于虚拟env文件夹中的source.py,但没有用。
But i figured out that when im not using virtual env, i mean without entering source /bin/activate, "python manage.py startapp demo" command has worked. 但是我发现当我不使用虚拟环境时,我的意思是不输入源代码/ bin / activate,“ python manage.py startapp demo”命令已经起作用。 When i activate env, it returns an error which i mentioned above. 当我激活env时,它返回一个我上面提到的错误。
according to this answer https://stackoverflow.com/a/23414147/2174832 根据这个答案https://stackoverflow.com/a/23414147/2174832
There is no public version of pysqlite for Python 3.x. 没有适用于Python 3.x的pysqlite的公共版本。 For Python 3.x, the sqlite3 module in the standard library is the most up-to date version of pysqlite there is. 对于Python 3.x,标准库中的sqlite3模块是pysqlite的最新版本。
run the command pip install sqlite3
within your activated virtualenv and use this module instead of pysqlite2. 在激活的virtualenv中运行命令pip install sqlite3
,并使用此模块代替pysqlite2。 To activate your virtualenv go to /folderofvirtualenv/bin
and run the command source activate
要激活您的virtualenv,请转到/folderofvirtualenv/bin
并运行命令source activate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.