我用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 install pysqlite 我得到
SyntaxError: Missing Parenthesis in call to 'Print
它建议安装Sphinx,我做了但没有解决。
我认为这两个问题是直接相关的,通过治愈一个问题应该能够治愈另一个问题。
您可以进行以下更改以使您的 jupyter 笔记本正常工作
替换文件“C:\Windows\System32\sqlite3.dll” 通过“C:\Users\用户名 naconda3\Library in\sqlite3.dll”
这将使 jupyter 笔记本工作
您可能只使用
sqlite3
,它现在是标准库的一部分,并且应该与 pysqlite2 完全相同。您可以尝试修改以下提到的文件:
from pysqlite2 import dbapi2 as sqlite
到
from sqlite3 import dbapi2 as sqlite
尝试
pip search sqlite
,你可能会发现很多候选人。选择这样的一个:
pip install pysqlite
对于 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
这是一个链接问题,将下面的编译的库文件从旧的 Py2.6 目录复制到 Py2.7 解决了我的问题,受到 this Github 讨论的启发。
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/
我在设置时遇到了多个Python依赖包的问题,特别是在Ubuntu中的Python虚拟环境中安装jupyter笔记本时。这是因为sqlite绑定了我们的python。
我遇到错误:
from pysqlite2 import dbapi2 as sqlite3
ModuleNotFoundError: No module named 'pysqlite2'
我通过 --enable-loadable-sqlite-extensions=yes 解决了它 1.) 首先找到您用于创建虚拟环境的 python 或 python 版本。我用过python3.8 例如
$ whereis python
python: /usr/bin/python3.6m /usr/bin/python /usr/bin/python3.8 /usr/bin/python2.7-config /usr/bin/python3.8-config python
$ cd /usr/bin
$ls
python3.8
python3.8-config
注意: pytho 会有很多包检查。你会找到每个Python版本的配置文件,现在使用特定的Python版本
ox:/usr/bin$ ./python3.8-config --enable-loadable-sqlite-extensions=yes
或
ox:/usr/bin$ ./python3.8-config --enable-optimizations --enable-loadable-sqlite-extensions
现在,使用该 python 版本创建虚拟环境 例如 转到您要创建虚拟环境的文件夹
$ python3.8 -m venv mlwen_jup_env
$ source mlwen_jup_env/bin/activate
完成了,现在可以安装软件包了
这为我解决了问题
pip install notebook