无法在 Anaconda3 中启动 jupyter notebook,因为导入 _ssl 时出错

fle*_*end 1 python anaconda jupyter jupyter-notebook

我刚刚在 Windows 10 上安装了最新的 Anaconda,想用 anaconda 提示符启动 jupyter notebook,但出现以下错误。虽然我认为这是一个常见问题,但我找不到解决方案。

(base) C:\Users\Felix>jupyter notebook
Traceback (most recent call last):
  File "C:\Users\MyUser\Anaconda3\Scripts\jupyter-notebook-script.py", line 6, in <module>
    from notebook.notebookapp import main
  File "C:\Users\MyUser\Anaconda3\lib\site-packages\notebook\notebookapp.py", line 62, in <module>
    from tornado import httpserver
  File "C:\Users\MyUser\Anaconda3\lib\site-packages\tornado\httpserver.py", line 29, in <module>
    import ssl
  File "C:\Users\MyUser\Anaconda3\lib\ssl.py", line 98, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: Die angegebene Prozedur wurde nicht gefunden.
Run Code Online (Sandbox Code Playgroud)

另外:我不能pip用来安装东西。出现以下消息

WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
Run Code Online (Sandbox Code Playgroud)

Ser*_*kov 6

在这种情况下错误的原因是在 Anaconda 的 DLL 之前加载了一些不兼容的 DLL。解决方法之一是使用特殊的Anaconda DLL加载方式,在Anaconda提示符中设置相应的控制环境变量:

set CONDA_DLL_SEARCH_MODIFICATION_ENABLE=1
Run Code Online (Sandbox Code Playgroud)

PS:不要每次启动都手动设置变量,可以设置为系统环境变量