今天碰到一個小問題,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 "<stdin>", line 1, in <module>
File "/root/.pyenv/versions/2.7.9/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/root/.pyenv/versions/2.7.9/lib/python2.7/sqlite3/dbapi2.py", line 28, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
谷歌了一下,原因是安裝了多套python
環境,virtualenv
使用的那套python
沒有_sqlite3.so
這個文件。
沒用virtualenv
的時候,使用的是另外一套python
的_sqlite3.so
,所以解決方法是先安裝sqlite-devel
,
然后重新編譯virtualenv
使用的那套python
,操作步驟如下,因為我使用的pyenv
,所以是連帶virtualenv
一起安裝的。
1.先退出virtualenv
的python
環境,安裝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
>>>