python - Jupyter Notebook 安装中断 sqlite3
问题描述
使用以下代码,我安装了一个专用的 conda 环境:
conda config --set ssl_verify no
conda create --name kmkplot
conda activate kmkplot
conda install -c plotly plotly=4.0.0
conda install -c conda-forge geopandas
conda install -c conda-forge jupyter
启动 Jupyter,我收到以下错误:
(kmkplot) C:\Users\userabc>jupyter notebook
Traceback (most recent call last):
File "C:\Users\userabc\.conda\envs\kmkplot\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 9, in <module>
import sqlite3
File "C:\Users\userabc\.conda\envs\kmkplot\lib\sqlite3\__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "C:\Users\userabc\.conda\envs\kmkplot\lib\sqlite3\dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: DLL load failed: The specified procedure could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\userabc\.conda\envs\kmkplot\Scripts\jupyter-notebook-script.py", line 6, in <module>
from notebook.notebookapp import main
File "C:\Users\userabc\.conda\envs\kmkplot\lib\site-packages\notebook\notebookapp.py", line 86, in <module>
from .services.sessions.sessionmanager import SessionManager
File "C:\Users\userabc\.conda\envs\kmkplot\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 12, in <module>
from pysqlite2 import dbapi2 as sqlite3
ModuleNotFoundError: No module named 'pysqlite2'
所以,我所做的是创建一个新环境 kmkplot2 来测试 sqlite 是否有效:
conda create --name kmkplot
conda activate kmkplot2
然后在安装 Jupyter 之前测试 sqlite:
(kmkplot2) C:\Users\userabc>python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite3
>>>
它确实如此。那么为什么 Jupyter 安装会中断呢?这正是发生的事情:
conda install -c conda-forge jupyter
...
The following NEW packages will be INSTALLED:
...
sqlite conda-forge/win-64::sqlite-3.29.0-hfa6e2cd_0
...
如果我已经拥有它,为什么还要再次安装 sqlite?这可能会破坏自己吗?有没有办法阻止它安装sqlite?
Proceed ([y]/n)? y
Downloading and Extracting Packages
terminado-0.8.2 | 22 KB | ############################################################################ | 100%
wheel-0.33.4 | 52 KB | ############################################################################ | 100%
setuptools-41.0.1 | 658 KB | ############################################################################ | 100%
pywinpty-0.5.5 | 46 KB | ############################################################################ | 100%
notebook-6.0.0 | 7.2 MB | ############################################################################ | 100%
jsonschema-3.0.1 | 103 KB | ############################################################################ | 100%
certifi-2019.6.16 | 149 KB | ############################################################################ | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: | b'Enabling notebook extension jupyter-js-widgets/extension...\n - Validating: ok\n'
done
(kmkplot2) C:\Users\userabc>conda list
# packages in environment at C:\Users\userabc\.conda\envs\kmkplot2:
...
sqlite 3.29.0 hfa6e2cd_0 conda-forge
...
(kmkplot2) C:\Users\userabc>python
Python 3.7.3 | packaged by conda-forge | (default, Jul 1 2019, 22:01:29) [MSC v.1900 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlite
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'sqlite'
>>> exit()
(kmkplot2) C:\Users\userabc>jupyter notebook
Traceback (most recent call last):
File "C:\Users\userabc\.conda\envs\kmkplot2\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 9, in <module>
import sqlite3
File "C:\Users\userabc\.conda\envs\kmkplot2\lib\sqlite3\__init__.py", line 23, in <module>
from sqlite3.dbapi2 import *
File "C:\Users\userabc\.conda\envs\kmkplot2\lib\sqlite3\dbapi2.py", line 27, in <module>
from _sqlite3 import *
ImportError: DLL load failed: The specified procedure could not be found.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\userabc\.conda\envs\kmkplot2\Scripts\jupyter-notebook-script.py", line 6, in <module>
from notebook.notebookapp import main
File "C:\Users\userabc\.conda\envs\kmkplot2\lib\site-packages\notebook\notebookapp.py", line 86, in <module>
from .services.sessions.sessionmanager import SessionManager
File "C:\Users\userabc\.conda\envs\kmkplot2\lib\site-packages\notebook\services\sessions\sessionmanager.py", line 12, in <module>
from pysqlite2 import dbapi2 as sqlite3
ModuleNotFoundError: No module named 'pysqlite2'
任何想法接下来要尝试什么?
解决方案
在查看我上面的问题文本后,我注意到报告的 Python 版本是 2.7.x 但在 Jupyter 安装之后是 3.7.x 所以我强制使用 Python 版本 3.4.3(只是因为我知道这是一个版本,现在 Jupyter 在重新启动之后-安装 Jupyter。我仍然遇到一些其他错误,但可以关闭这个特定问题。
推荐阅读
- python - 如何在禁用的文本字段中编辑/更新?蟒蛇硒
- c++ - 使用 arduino mega 读取通过 SPI 数据接收
- html - 为什么我的网格元素如此庞大且相互重叠?
- flutter - 如何转换`List
- amazon-iam - AWS IAM 权限边界和 iam:PassROle
- php - Wordpress 在多个页面上使用相同的自定义 CSS
- python - 如何使用 DictWriter 方法制作正确的 csv 文件
- go - 不走常规,频道按通话顺序工作吗?
- java - 无法导入 Room 数据库以在 Android 应用程序中使用
- java - 将此代码从 C# 转换为 Java,还有什么可以在 Java 中简化的吗?