ImportError:没有名为'pysqlite2'的模块

时间:2015-04-21 11:27:39

标签: python linux sqlite debian

我用Python编写了一个在windows上完成的程序。并且在Windows测试环境中工作正常。现在我正在设置一个Linux服务器来内部托管该程序。我已经从生成的需求文件中安装了所有依赖项等,但是当我运行它时,我遇到了一个问题,

ImportError: No Module Named 'pysqlite2'.

我已经广泛搜索了这个问题并且没有找到解决方案。任何人都可以告诉我如何从下面的代码中解决这个问题?由于声誉不够高,我无法上传图片。任何帮助将不胜感激。如果需要任何其他信息,请发表评论,我将上传。

File "/home/ryan/python_p/venv/lib/python3.4/site-packages/sqlalchemy/dialects/sqlite/pysqlite.py", line 334, in dbapi
    from pysqlite2 import dbapi2 as sqlite
ImportError: No Module named 'pysqlite2'

据我所知,sqlite不兼容或兼容性问题?

我认为直接相关的另一个问题是在虚拟环境中我尝试pip3.4安装pysqlite我得到

SyntaxError: Missing Parenthesis in call to 'Print

它建议安装Sphinx我做了但没治愈。

我认为这两个问题是直接相关的,通过治疗,应该能够治愈另一个。

3 个答案:

答案 0 :(得分:3)

您可能只使用sqlite3,它现在是标准库的一部分,应该与pysqlite2完全相同。您可以尝试修改提及的文件:

from pysqlite2 import dbapi2 as sqlite

from sqlite3 import dbapi2 as sqlite

答案 1 :(得分:1)

尝试pip search sqlite,您可能会找到很多候选人。选择这样的东西:

 pip install pysqlite

答案 2 :(得分:0)

对于使用CentOS 6和Python 2.6的用户:

直接执行pip install pysqlite会导致gcc错误,在安装pysqlite之前,您必须先yum install sqlite-devel

在那之后,如果您使用的Python版本与CentOS 6随附的Python 2.6不同,ImportError可能仍然存在。

ImportError: /usr/local/lib/python2.7/site-packages/pysqlite2/_sqlite.so: undefined symbol: sqlite3_stmt_readonly

这是一个链接问题,受this Github讨论的启发,将已编译的库文件下面的文件从旧的Py2.6目录复制到Py2.7解决了我的问题。

cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/sqlite3/
cp /usr/lib64/python2.6/lib-dynload/_sqlite3.so /usr/local/lib/python2.7/lib-dynload/