关于 ImportError: No module named _sqlite3 报错解决方法

今天碰到一个小问题,virtualenv的环境竟然无法import sqlite3

报错信息如下:

python

Python 2.7.9 (default, Feb 10 2015, 01:40:34)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
Traceback (most recent call last):
File "", line 1, in
File "/root/.pyenv/versions/2.7.9/lib/python2.7/sqlite3/init.py", line 24, in
from dbapi2 import *
File "/root/.pyenv/versions/2.7.9/lib/python2.7/sqlite3/dbapi2.py", line 28, in
from _sqlite3 import *
ImportError: No module named _sqlite3

谷歌了一下,原因是安装了多套python环境,virtualenv使用的那套python没有_sqlite3.so这个文件。
没用virtualenv的时候,使用的是另外一套python_sqlite3.so,所以解决方法是先安装sqlite-devel
然后重新编译virtualenv使用的那套python,操作步骤如下,因为我使用的pyenv,所以是连带virtualenv一起安装的。

1.先退出virtualenvpython环境,安装sqlite-devel

yum -y install sqlite-devel

2.重新安装pyenv

curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

3.删掉原有的python环境

pyenv uninstall 2.7.9

4.重新安装python

pyenv isntall 2.7.9

5.测试一下

python

Python 2.7.9 (default, Feb 10 2015, 01:40:34)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>>

posted @ 2015-04-28 01:22  小米飞猫  阅读(26653)  评论(0)    收藏  举报