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

问题描述 投票:4回答:2

问题:

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

C:\ scripts \ notebooks> jupyter notebook Traceback(最近一次调用最后一次):文件“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行,来自_sqlite3 import * ImportError:DLL加载失败:未找到过程

在处理上述异常期间,发生了另一个异常:

回溯(最近一次调用最后一次):文件“C:\ Users \ MYUSERID \ AppData \ Local \ Continuum \ anaconda3 \ Scripts \ jupyter-notebook-script.py”,第6行,来自notebook.notebookapp导入主文件“C: \ Users \ MYUSERID \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ notebook \ notebookapp.py“,第86行,来自.services.sessions.sessionmanager导入SessionManager文件”C:\ Users \ MYUSERID \ AppData \本地\ Continuum \ anaconda3 \ lib \ site-packages \ notebook \ services \ sessions \ sessionmanager.py“,第13行,从pysqlite2导入dbapi2作为sqlite3 ModuleNotFoundError:没有名为'pysqlite2'的模块


我尝试过的:


我检查了新鲜的Anaconda文件夹,一切似乎都应该是sqlitesqlite3pysqlite2

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

当我从Anaconda Navigator启动Jupyter时,一切运行正常。

Ubuntu在这里提出了一个类似的问题,但没有回答:2x ModuleNotFoundError Jupyter notebook


编辑:


当我使用和Anaconda Prompt时,jupyter在进入jupyter notebook时也开始运行正常。那么为什么要打扰命令窗口呢? anaconda prompt命令不会在deafault Web浏览器中自动打开ipynb文件。我之前使用Windows命令窗口(和批处理文件)的设置就是这样做的,我认为它非常有用。


系统细节:

Windows 7,64位

蟒蛇2018.12

Jupyter笔记本5.7.4

Python 3.7.1

IPython 7.2.0

python sqlite jupyter-notebook jupyter
2个回答
6
投票

简短回答:

这似乎是29.01.2019版本问题,仅与以下内容有关:

Anaconda3-2018.12

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中的设置批量启动Jupyter,但它不会在默认Web浏览器中自动打开。您也可以毫无问题地从Anaconda Navigator启动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浏览器。此外,如果您要安装Notebook Extensions,您将收到相关的错误消息。由于我没有发现这个非常令人满意,我开始更多地探讨这对于Anaconda的后续版本是否也是一个问题:


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


我注意到一些关于github的评论pysqlite2 is not used in Python 3。我很确定大约一年前我没有使用ModuleNotFoundError: No module named pysqlite2,当时我已经在使用Python 3了,所以我测试了一些较旧的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

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

  1. 通过导航到文件夹并输入jupyter notebook,可以从命令提示符(不仅是Anaconda提示符)启动Jupyter,它会在默认Web浏览器中自动启动。
  2. 可以使用conda install -c conda-forge jupyter_contrib_nbextensions安装nbExtensions

来自Anaconda Archive的测试版本

Anaconda3-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.

Anaconda3-4.4.0

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

Anaconda2-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 

2
投票

如果你为cx_Oracle包安装了oracle客户端,请检查你是否在DYLD_LIBRARY_PATH中有/ usr / lib。尝试从路径中删除/ usr / bin并查看它是否有效。

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


0
投票

这个答案适用于那些可能从源代码编译Python的用户以及没有管理员权限的用户(因此我无法使用Homebrew)。我遇到了同样的错误,但我的python环境是自定义的,我没有使用anaconda或pyenv。旁注,我的操作系统是macOS mojave 10.14.6

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

  1. 从这个sqlite下载tarfile page
  2. 导航到安装了/path/to/python_dir/Python-3.x.x/Modules版本的Python。 (因为我不是我在这里安装它的管理员:/Users/myusername/python3。):/Users/myusername/python3/Python-3.6.8/Modules/
  3. sqlite下提取/Modules/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二进制文件,并指向sqlitecd ../../然后: ./configure --prefix='/Users/myusername/python3' --with-sqlite='/Users/myusername/python3'
  8. make && make install

旁注:事实证明,如果您手动配置Python并且无法使用pip安装某些库,则可能必须从源配置并重新编译该包。下载您的包的tar文件,并为您的包重复上述步骤。我也遇到过zlibopenssl的问题,我也做了同样的事情。 您可能会发现其他一些有用的线程:this,也许是this also

© www.soinside.com 2019 - 2024. All rights reserved.