从cmd运行Jupyter Notebook会引发ModuleNotFoundError:没有名为pysqlite2的模块

irlmq6kh  于 2022-11-14  发布在  SQLite
关注(0)|答案(6)|浏览(219)

问题:

重新安装Anaconda后,我不能再使用命令窗口导航到我已经有一些.pynb文件的文件夹,输入jupyter notebook并启动和运行程序。我收到以下错误:
C:\SCRIPTS\Notebook>Jupyter笔记本回溯(最近一次调用):文件“C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py”,行10,在导入SQlite3中文件“C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\sqlite3__init__.py”,行23,在来自SQlite3.dbapi2导入文件“C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\sqlite3\dbapi2.py”,行27,在from_sqlite3中导入ImportError:Dll加载失败:找不到Procedyre
在处理上述异常的过程中,发生了另一个异常:
回溯(最近一次调用):文件“C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\Scripts\jupyter-notebook-script.py”,行6,来自Notebook。记事本应用程序导入主文件“C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\site-packages\notebook\notebookapp.py”,行86,来自.services.会话。会话管理器导入会话管理器文件“C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py”,行13,在FROM PYSQLITE2中,将DBAPI2导入为Sqlite3 ModuleNotFoundError:没有名为‘pysqlite2’的模块

我尝试过的:

我已经检查了新鲜的Python文件夹,所有东西似乎都在应该写入sqlitesqlite3pysqlite2的位置。
自从我上次下载Anaconda以来,他们似乎已经更改了默认的安装文件夹,所以我确信在根据发布的Jupyter notebook will not open from command prompt编辑我的用户和系统环境变量后,一切都会正常的,以防重新安装Anaconda时检查Add to Path选项还不够。但我仍然收到相同的错误消息。
当我从Python导航器发射木星时,一切都运行得很好。
对于Ubuntu,也有人提出了类似的问题,但没有得到回答:2x ModuleNotFoundError Jupyter notebook

编辑:

当我使用和Anaconda提示符时,当输入jupyter notebook时,jupyter也开始正常运行。那么,为什么还要费心使用命令窗口呢?Anaconda Prompt命令不会在默认Web浏览器中自动打开ipynb文件。我之前使用Windows命令窗口(和一个批处理文件)进行的设置做到了这一点,我认为它非常有用。

系统详情:

Windows 7, 64 bit
Anaconda 2018.12
Jupyter Notebook 5.7.4
Python 3.7.1
IPython 7.2.0
mdfafbf1

mdfafbf11#

我在同一个问题上被困了差不多一天。终于找到了解决方案,它现在起作用了。
该问题似乎是由于路径“.\Anaconda\dlls\”中缺少SQLite3.dll而引起的。我只需从**\Anaconda3\Library\bin**复制.dll文件并将其放在上面提到的路径下即可解决此问题。这是生命的救世主。
谢谢你,达尔山

66bbxpm5

66bbxpm52#

简单回答:

这似乎是29.01.2019的版本问题,仅与以下内容相关:
Anaconda3-2018.12-Windows-x86_64

Jupyter Notebook 5.7.4
Python 3.7.1 (default, Dec 10 2018, 22:54:23) 
IPython 7.2.0

检查以下详细信息中的列表,以查看在从批处理启动Jupyter时,甚至在尝试安装nbExtensions时,不会引发ModuleNotFoundError: No module named pysqlite2的版本。
对于Anaconda3-2018.12版,可以使用GokulDAS027 in this post的设置从Batch启动Jupyter,但它不会在您的默认Web浏览器中自动打开。你也可以从Python导航器启动Jupyter,没有问题。

详情:
解决方案1:运行更详细的批次

结果是,GokulDAS027出于某种原因对问题Using a .bat to change directories and run Jupyter的建议将打开Jupyter,而不会引发SQLite错误消息:
C:\Users\**UserName**\Anaconda3\python.exe C:\Users\**UserName**\Anaconda3\cwp.py C:\Users\**UserName**\Anaconda3 C:\Users\**UserName**\Anaconda3\python.exe C:\Users\**UserName**\Anaconda3\Scripts\jupyter-notebook-script.py "**file location**"

  • 在我的系统上,Jupyter不会自动打开默认的网络浏览器。*此外,如果你想安装笔记本扩展,你会收到相关的错误消息。由于我觉得这不是很令人满意,我开始更深入地挖掘这是否也是较新版本的Python的问题:
    **解决方案二:**安装较旧版本的Python

我注意到GitHub上有一些关于pysqlite2 is not used in Python 3的评论。大约一年前,当我已经在使用Python3时,我非常确定我没有ModuleNotFoundError: No module named pysqlite2,所以我测试了几个较早的Anaconda安装,以检查是否会引发相同的错误。
最新版本(根据29.01.2019)似乎将引发pysqlite2错误:
Anaconda3-2018.12

Jupyter Notebook 5.7.4
Python 3.7.1 (default, Dec 10 2018, 22:54:23) 
IPython 7.2.0

使用下面描述的系统设置(仍在64位Windows 7上),一切运行正常,这意味着:

1.Jupyter可以从命令提示符(不仅仅是Anaconda提示符)启动,方法是导航到一个文件夹并键入jupyter notebook它会在默认的Web浏览器中自动启动。
1.可使用conda install -c conda-forge jupyter_contrib_nbextensions安装nb扩展

测试版本来自Anaconda Archive
水蟒3-5.3.1

Jupyter Notebook 5.6.0
Python 3.7.0 (default, Jun 28 2018, 08:04:48) [MSC v.1912 64 bit (AMD64)]
IPython 6.5.0 -- An enhanced Interactive Python. Type '?' for help.

水蟒3-4.4.0

Python 3.6.1 |Anaconda 4.4.0 (64-bit)|
IPython 5.3.0

Python2-4.3.1-Windows-x86_64

Jupyter Notebook 4.3.1
Python 2.7.13 |Anaconda 4.3.1 (64-bit)| 
IPython 5.1.0
vq8itlhq

vq8itlhq3#

1.从此链接下载pysqlite:https://www.sqlite.org/download.html
1.将文件压缩到目录:(anaconda3\dll)

8mmmxcuj

8mmmxcuj4#

如果您已安装Oracle客户端for CX_ORACLE包,请检查DYLD_LIBRARY_PATH中是否有**/usr/lib**。尝试从路径中删除/usr/bin,看看它是否有效。
我也有同样的问题,这对我很管用。我已经在MacOS上试过了。

x9ybnkn6

x9ybnkn65#

这个答案适用于可能已经从源代码编译了Python的用户,也适用于没有管理员权限的用户(因此我不能使用Homebrew)。我遇到了同样的错误,但我的python环境是定制的,并且我没有使用anaconda或pyenv。顺便说一句,我的操作系统是macOS mojave 10.14.6
我从源包手动重新编译和重新配置了sqlite。步骤:
1.从page下载sqlitetarfile
1.导航到安装Python版本的/path/to/python_dir/Python-3.x.x/Modules。(因为我不是管理员,所以安装在这里:/Users/myusername/python3。):/Users/myusername/python3/Python-3.6.8/Modules/
1.解压/Modules/下的sqlitetar zxf /Users/myusername/Downloads/sqlite.tar.gz
1.cd sqlite
1.本地配置sqlite./configure --prefix='/Users/myusername/python3'
附注:如果没有prefix选项,make install将在默认位置安装文件。check this answer。因此,如果您的python不在默认位置,请使用prefix选项。
1.make && make install
1.回到python文件夹,重新配置python二进制文件,指向sqlite
cd ../../,然后:
./configure --prefix='/Users/myusername/python3' --with-sqlite='/Users/myusername/python3'
1.make && make install
附注:事实证明,如果您手动配置了Python,并且不能使用pip安装库,那么您可能需要从源代码配置和重新编译该包。下载您的包的tar文件,并对您的包重复上述步骤。我在使用zlibopenssl时也遇到了问题,我也这样做了。
您可能会发现其他一些线程很有用:this,也许this also

zbsbpyhn

zbsbpyhn6#

这对我在Windows 10上很管用:
用“C:\Users\username\anaconda3\Library\bin\sqlite3.dll”替换文件“C:\WINDOWS\SYSTEM32\SQLite3.dll”

相关问题