2017-03-05 93 views
0

我試着從頭開始一個Django項目,但我有,說一個錯誤「導入錯誤:沒有模塊名爲‘pysqlite2’」Pysqlite2錯誤,同時啓動Django項目

我使用Python 3.6.0。我會寫步驟,這即時通訊以下


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' 

我想什麼?我嘗試安裝pip install pysqlite2 - 我試圖改變虛擬env文件夾內的source.py,但它沒有工作。

但我想通了,當我不使用虛擬環境,我的意思是沒有進入源/ bin /激活,「蟒蛇manage.py startapp演示」命令已經工作。當我激活env時,它會返回上面提到的錯誤。

+0

'pip freeze | grep pysql'當你在你激活的virtualenv中運行這個命令? – matyas

+0

@matyas它沒有返回值:( – Berkin

+0

只有'PIP freeze'? – matyas

回答

0

根據這個答案https://stackoverflow.com/a/23414147/2174832

There is no public version of pysqlite for Python 3.x. For Python 3.x, the sqlite3 module in the standard library is the most up-to date version of pysqlite there is.

運行命令pip install sqlite3您激活的virtualenv內,並使用這個模塊來代替pysqlite2的。激活你的virtualenv去/folderofvirtualenv/bin 並運行命令source activate

+0

收集pysqlite2 找不到滿足要求pysqlite2(從版本:)版本 未發現pysqlite2 – Berkin

+0

正如我所說的匹配分配,我已經嘗試過,但它返回 – Berkin

+0

哪個版本的Python(2或3)你用來創建你的virtualenv? – matyas