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

2024-05-08 15:16:41 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:

重新安装Anaconda后,我无法再使用命令窗口导航到某个文件夹,在那里我有一些.pynb文件,键入jupyter notebook并启动并运行。我发现这些错误:

C:\scripts\notebooks>jupyter notebook Traceback (most recent call last): File "C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 10, in import sqlite3 File "C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\sqlite3__init__.py", line 23, in from sqlite3.dbapi2 import * File "C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\sqlite3\dbapi2.py", line 27, in from _sqlite3 import * ImportError: DLL load failed: Procedyre not found

During handling of the above exception, another exception occurred:

Traceback (most recent call last): File "C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\Scripts\jupyter-notebook-script.py", line 6, in from notebook.notebookapp import main File "C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\site-packages\notebook\notebookapp.py", line 86, in from .services.sessions.sessionmanager import SessionManager File "C:\Users\MYUSERID\AppData\Local\Continuum\anaconda3\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 13, in from pysqlite2 import dbapi2 as sqlite3 ModuleNotFoundError: No module named 'pysqlite2'


我的尝试:


我检查了新鲜的水蟒文件夹,所有的东西似乎都在它应该写的地方。在

自从上次下载Anaconda以来,似乎他们已经更改了默认的安装文件夹,所以我确信在根据post Jupyter notebook will not open from command prompt编辑我的用户和系统环境变量之后,一切都会好起来的,以防在重新安装Anaconda时检查Add to Path选项是不够的。但我仍然收到同样的错误信息。在

当我从水蟒导航器发射Jupyter时,一切正常。在

有人问过一个类似的问题,但没有得到回答,在这里是Ubuntu:2x ModuleNotFoundError Jupyter notebook


编辑:


当我使用andanaconda提示符时,jupyter在输入jupyter notebook时也开始正常运行。那么为什么要费心命令窗口呢?anaconda prompt命令不会在deafaultweb浏览器中自动打开ipynb文件。我以前用windows命令窗口(和一个批处理文件)设置的,我认为它非常有用。在


系统详细信息:

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

Tags: infrompyimportlocallinejupyterusers
3条回答

这个答案适用于可能从源代码编译Python的用户,也适用于没有管理员权限的用户(因此我不能使用Homebrew)。我也遇到了同样的错误,但是我的python环境是定制的,我没有使用anaconda或pyenv。另外,我的操作系统是macOS mojave 10.14.6。在

我从源包手动重新编译并重新配置sqlite。步骤:

  1. 从这个page下载sqlitetarfile。在
  2. 导航到/path/to/python_dir/Python-3.x.x/Modules,其中安装了Python版本。(因为我不是安装它的管理员:/Users/myusername/python3。):/Users/myusername/python3/Python-3.6.8/Modules/
  3. /Modules/下提取sqlite:tar zxf /Users/myusername/Downloads/sqlite.tar.gz
  4. cd sqlite
  5. 本地配置sqlite./configure prefix='/Users/myusername/python3'
    旁注:没有prefix选项make install将在默认位置安装文件。check this answer。因此,如果python不在默认位置,请使用prefix选项。在
  6. make && make install
  7. 返回python文件夹并重新配置python二进制文件,并指向sqlite:
    cd ../../然后:
    ./configure prefix='/Users/myusername/python3' with-sqlite='/Users/myusername/python3'。在
  8. make && make install

旁注:如果您手动配置Python,并且不能使用pip安装某些库,那么您可能需要从源代码配置并重新编译该包。下载包的tar文件,并对包重复上述步骤。我也遇到了zlibopenssl的问题,我做了同样的事情。
您可能会发现其他一些有用的线程:this,可能是{a5}

简短回答:

这似乎是自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,Jupyter可以使用GokulDAS027in this post中的设置从批处理启动,但它不会在默认的web浏览器中自动打开。你也可以从水蟒导航器启动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不会自动打开默认的web浏览器。 另外,如果你想安装笔记本扩展,你会得到一个相关的错误消息。因为我觉得这不太令人满意,所以我开始更深入地研究这是否也是后来版本的Python的问题:


解决方案2:安装旧版本的Anaconda


我注意到github上的一些评论pysqlite2 is not used in Python 3。我非常确定,大约一年前我已经在使用python3时没有ModuleNotFoundError: No module named pysqlite2,所以我测试了一些旧的Anaconda安装,以检查是否会引发相同的错误。在

对于最新版本(根据2019年1月29日),pysqlite2错误似乎只会引发:

Anaconda3-2018.12

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

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

  1. Jupyter可以从命令提示符(不仅仅是Anaconda提示符)启动,方法是导航到文件夹并键入jupyter notebook它将在默认的web浏览器中自动启动。

  2. nbExtensions可以使用conda install -c conda-forge jupyter_contrib_nbextensions

来自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 

如果为cx_oracle软件包安装了oracle client,请检查DYLD_LIBRARY路径中是否有/usr/lib。尝试从路径中删除/usr/bin并查看它是否有效。在

我也有同样的问题,这对我很有效。我在MacOS上试过了。在

相关问题 更多 >