无法使用Python 2.6导入SQLite
我正在Unix上运行Python 2.6,当我运行交互式提示符(应该是预安装的)时,我得到:无法使用Python 2.6导入SQLite,python,sqlite,Python,Sqlite,我正在Unix上运行Python 2.6,当我运行交互式提示符(应该是预安装的)时,我得到: [root@idevhtdocs]#python Python 2.6(r26:6671420008年10月23日16:25:34) linux2上的[GCC 3.2.2 20030222(Red Hat Linux 3.2.2-5)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入sqlite 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 ImportError:
[root@idevhtdocs]#python
Python 2.6(r26:6671420008年10月23日16:25:34)
linux2上的[GCC 3.2.2 20030222(Red Hat Linux 3.2.2-5)]
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入sqlite
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为sqlite的模块
>>>
我如何解决这个问题
import sqlite3
-用于SQLite数据库的DB-API 2.0接口
您缺少。因此
(共享对象)-可能是安装步骤。在我的Linux python安装中,\u sqlite3
位于:
${somewhere}/lib/python2.6/lib-dynload/_sqlite3.so
错误:
ImportError: No module named _sqlite3
表示3未找到关联的共享库。在Mac OS X上是_sqlite3.so,在其他Unix系统上应该是相同的
要解决此错误,您必须在计算机上找到_sqlite3.so库,然后检查PYTHONPATH的此目录位置
要打印Python搜索路径,请在Python shell中输入以下内容:
import sys
print sys.path
如果缺少包含库的目录,您可以尝试使用以交互方式添加它
sys.path.append('/your/dir/here')
试一试
import sqlite3
再说一遍。如果这样做有效,您必须将此目录永久添加到PYTHONPATH环境变量中
PS:如果库丢失,您应该(重新)安装模块。尝试以下操作:
from pysqlite2 import dbapi2 as sqlite
在我的系统上
\u sqlite3.so
位于:
'/usr/lib/python2.6/lib-dynload/_sqlite3.so'
检查目录是否在您的sys.path
中:
>>> import sys; print(filter(lambda p: 'lib-dynload' in p, sys.path))
['/usr/lib/python2.6/lib-dynload']
Python2.6检测sqlite3开发头的安装位置,如果sqlite3不可用,它将自动跳过构建sqlite3。如果您是从源代码构建,请安装包含开发头的sqlite3。在我的例子中,
sudo-yum-install-sqlite-devel
在CentOS 4.7上解决了这个问题。然后,从源代码重建Python。这能解决您的问题吗
Python 2.5.4 (r254:67916, May 31 2009, 16:56:01)
[GCC 4.3.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named sqlite
>>> import sqlite3
>>>
Python 2.5.4(r254:679162009年5月31日16:56:01)
[GCC 4.3.3]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>导入sqlite
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ImportError:没有名为sqlite的模块
>>>导入sqlite3
>>>
2.5.5。Python 2.5的Mac端口现在有以下提示:
"py25-sqlite3 @2.5.4 (python, databases)
This is a stub. sqlite3 is now built with python25"
因此,将python25端口升级为python25@2.5.5_0
使导入再次起作用。
由于sqlite3是python25的依赖项之一,
它是在升级python25时重新构建的。
因此,
在Mac OS X、端口收集上也有同样的把戏。我也面临同样的问题。
解决问题的步骤
请澄清“从源代码重建Python”的含义。谢谢
"py25-sqlite3 @2.5.4 (python, databases)
This is a stub. sqlite3 is now built with python25"
$ sudo port upgrade python25