回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>嗨,我正在使用UbuntuRelease12.10(quantal)32位Linux内核3.5.0-21-generic。我想让伊普顿的历史发挥作用。我用pythonbrew和一个虚拟环境来设置它。在那里我使用pip安装IPython。目前,当我在终端启动IPython时,我得到:</p>
<pre><code>WARNING: IPython History requires SQLite, your history will not be saved
Python 2.7.3 (default, Nov 8 2012, 18:25:10)
Type "copyright", "credits" or "license" for more information.
IPython 0.13.1 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
</code></pre>
<p>在第一行的警告中搜索,我找到了<a href="https://github.com/gotcha/ipdb/issues/34" rel="noreferrer">this issue report</a>,因此我返回并安装了以下内容:</p>
<pre><code>sudo apt-get install libsqlite0 libsqlite0-dev libsqlite3-0 libsqlite3-dev
</code></pre>
<p>然后使用pip删除并重新安装pysqlite</p>
<pre><code>pip uninstall pysqlite
pip install pysqlite
</code></pre>
<p>之后,我想通过导入模块来检查安装:</p>
<pre><code>Python 2.7.3 (default, Nov 8 2012, 18:25:10)
[GCC 4.7.2] 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/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/home/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: No module named _sqlite3
</code></pre>
<p>所以现在似乎找不到文件_sqlite3.So。就在那时我找到了<a href="https://stackoverflow.com/questions/1210664/no-module-named-sqlite3">this SO question</a>。它要么不存在,要么不在PYTHONPATH环境变量中。搜索文件,我得到:</p>
<pre><code>$ locate _sqlite3.so
/home/me/Desktop/.dropbox-dist/_sqlite3.so
/home/me/epd/lib/python2.7/lib-dynload/_sqlite3.so
/usr/lib/python2.7/lib-dynload/_sqlite3.so
</code></pre>
<p>所以文件就在那里,但是当我查看python路径时:</p>
<pre><code>import sys
for p in sys.path:
print p
</code></pre>
<p>上面所有包含sqlite3.so的路径都不包含在我的PYTHONPATH中。对于giggles,我将路径/usr/lib/python2.7/lib-dynload添加到终端中的PYTHONPATH,然后再次尝试导入sqlite3:</p>
<pre><code>Python 2.7.3 (default, Nov 8 2012, 18:25:10)
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.<a href="https://www.cnpython.com/list/append" class="inner-link">append</a>("/usr/lib/python2.7/lib-dynload")
>>> import sqlite3
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/__init__.py", line 24, in <module>
from dbapi2 import *
File "/home/me/.pythonbrew/pythons/Python-2.7.3/lib/python2.7/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: /usr/lib/python2.7/lib-dynload/_sqlite3.so: undefined symbol: PyUnicodeUCS4_DecodeUTF8
</code></pre>
<p>哦哦。现在我完全被困住了。有人能帮我吗?我也读过一些地方,可能需要重新构建Python。我不知道怎么用Python做这个。有人能指点我正确的方向吗?</p>