Python 带有Django的Tango:没有名为_sqlite3的模块

Python 带有Django的Tango:没有名为_sqlite3的模块,python,django,Python,Django,我知道已经有很多人遇到了这个问题,但我花了三个小时浏览了我能找到的每一个链接,还没有找到一个适合我的解决方案。我很难为情,不得不做这个线程,但我没有其他选择 我一直在用探戈演奏Django,在我来到这一部分之前,一切都很顺利: 在执行syncdb命令时,Python无法识别sqlite3。所以我决定通过一个简单的导入测试来验证这一点: rob@rob-Latitude-E5400:~/code/tango_with_django_project$ python Python 2.7.5 (def

我知道已经有很多人遇到了这个问题,但我花了三个小时浏览了我能找到的每一个链接,还没有找到一个适合我的解决方案。我很难为情,不得不做这个线程,但我没有其他选择

我一直在用探戈演奏Django,在我来到这一部分之前,一切都很顺利:

在执行syncdb命令时,Python无法识别sqlite3。所以我决定通过一个简单的导入测试来验证这一点:

rob@rob-Latitude-E5400:~/code/tango_with_django_project$ python
Python 2.7.5 (default, Sep 21 2014, 16:23:05) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/rob/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
    from dbapi2 import *
  File "/home/rob/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module>
    from _sqlite3 import *
ImportError: No module named _sqlite3
>>> 
rob@rob-Latitude-E5400:~/code/tango_with_django_项目$python
Python 2.7.5(默认,2014年9月21日,16:23:05)
[GCC 4.6.3]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入sqlite3
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/rob/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/sqlite3/_init__.py”,中的第24行
从dbapi2导入*
文件“/home/rob/.pythonbrew/pythons/pythons-2.7.5/lib/python2.7/sqlite3/dbapi2.py”,第27行,在
从_sqlite3导入*
ImportError:没有名为_sqlite3的模块
>>> 
很多人在网上也有同样的问题。这家伙

给出了一些建议来查找_sqlite3.so,并将目录放在PYTHONPATH中。我再次运行了syncdb命令,得到了以下结果:

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 263, in fetch_command
    app_name = get_commands()[subcommand]
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 109, in get_commands
    apps = settings.INSTALLED_APPS
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 53, in __getattr__
    self._setup(name)
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 49, in _setup
    self._configure_logging()
  File "/usr/local/lib/python2.7/dist-packages/django/conf/__init__.py", line 71, in _configure_logging
    from django.utils.log import DEFAULT_LOGGING
  File "/usr/local/lib/python2.7/dist-packages/django/utils/log.py", line 6, in <module>
    from django.views.debug import ExceptionReporter, get_exception_reporter_filter
  File "/usr/local/lib/python2.7/dist-packages/django/views/debug.py", line 11, in <module>
    from django.http import (HttpResponse, HttpResponseServerError,
  File "/usr/local/lib/python2.7/dist-packages/django/http/__init__.py", line 2, in <module>
    from django.http.request import (HttpRequest, QueryDict, UnreadablePostError,
  File "/usr/local/lib/python2.7/dist-packages/django/http/request.py", line 8, in <module>
    from io import BytesIO
  File "/home/rob/.pythonbrew/pythons/Python-2.7.5/lib/python2.7/io.py", line 51, in <module>
    import _io
ImportError: /usr/lib/python2.7/lib-dynload/_io.so: undefined symbol: PyUnicodeUCS4_EncodeUTF32
回溯(最近一次呼叫最后一次):
文件“/manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/usr/local/lib/python2.7/dist-packages/django/core/management/__-init__.py”,第453行,从命令行执行
utility.execute()
文件“/usr/local/lib/python2.7/dist packages/django/core/management/__init__.py”,第392行,在execute中
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/usr/local/lib/python2.7/dist packages/django/core/management/_init__.py”,第263行,在fetch_命令中
app_name=get_commands()[子命令]
get_命令中的文件“/usr/local/lib/python2.7/dist packages/django/core/management/_init__uuu.py”,第109行
应用程序=设置。已安装的应用程序
文件“/usr/local/lib/python2.7/dist-packages/django/conf/_-init__.py”,第53行,在_-getattr中__
自我设置(名称)
文件“/usr/local/lib/python2.7/dist-packages/django/conf/_-init___.py”,第49行,在安装程序中
self.\u配置\u日志()
文件“/usr/local/lib/python2.7/dist-packages/django/conf/_-init__;.py”,第71行,在配置日志记录中
从django.utils.log导入默认日志
文件“/usr/local/lib/python2.7/dist-packages/django/utils/log.py”,第6行,在
从django.views.debug import ExceptionReporter获取\u exception\u reporter\u过滤器
文件“/usr/local/lib/python2.7/dist-packages/django/views/debug.py”,第11行,在
从django.http导入(HttpResponse,HttpResponseServerError,
文件“/usr/local/lib/python2.7/dist packages/django/http/_init__.py”,第2行,在
从django.http.request导入(HttpRequest、QueryDict、unadableposterror、,
文件“/usr/local/lib/python2.7/dist-packages/django/http/request.py”,第8行,在
从io导入字节io
文件“/home/rob/.pythonbrew/pythons/pythons-2.7.5/lib/python2.7/io.py”,第51行,在
导入
导入错误:/usr/lib/python2.7/lib-dynload//u io.so:未定义的符号:PyUnicodeUCS4\u EncodeUTF32
现在我被卡住了。我用谷歌搜索了最后一个错误,找不到太多。关于我的Python是如何用不同的Unicode编译的。但这并没有告诉我如何解决这个问题


感谢您的阅读和帮助。

已修复。我看到以下回复:

然而,当我运行pip install pysqlite时,我收到了以下消息:

[snipped]
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DMODULE_NAME="pysqlite2.dbapi2" -DSQLITE_OMIT_LOAD_EXTENSION=1 -I/usr/include/python2.7 -c src/module.c -o build/temp.linux-x86_64-2.7/src/module.o

In file included from src/module.c:24:0:

src/connection.h:26:20: fatal error: Python.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1
[snipped]
事实证明,我没有安装Python开发文件。我从这篇文章中发现了这一点:

所以我运行:
sudo apt get install python dev

然后我可以成功运行:
pip安装pysqlite

最后,当我运行Django教程中的命令时:
/manage.py syncdb


我得到了正确的输出。我希望这对其他人有所帮助,因为这个解决方案很复杂,很难在网上找到。

我不知道你为什么要费心在Python 2.7中安装
pysqlite
,因为
sqlite3
基本上是一样的,并且是标准库的一部分。你应该在安装了neces之后重新构建Pythonsary deps让它工作起来。我同意,当Python构建过程无法构建自己的标准库时,它没有阻塞和消亡是相当令人困惑的。