Python 3.7 anaconda环境-导入ssl DLL加载失败错误

Python 3.7 anaconda环境-导入ssl DLL加载失败错误,python,python-3.x,pycharm,anaconda,Python,Python 3.x,Pycharm,Anaconda,我用Python=3.7创建了anaconda环境,但遇到了_ssl和DLL错误。当我试图回到我的基本环境时,我很难完成如下图所示的后台进程,这将永远持续下去 错误: C:\Users\abhil\AppData\Local\Continuum\anaconda3\envs\HeisenbergPy37\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\pydev\pydevcon

我用Python=3.7创建了anaconda环境,但遇到了_ssl和DLL错误。当我试图回到我的基本环境时,我很难完成如下图所示的后台进程,这将永远持续下去

错误:

C:\Users\abhil\AppData\Local\Continuum\anaconda3\envs\HeisenbergPy37\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\pydev\pydevconsole.py" --mode=client --port=63950
Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\pydev\pydevconsole.py", line 5, in <module>
    from _pydev_comm.rpc import make_rpc_client, start_rpc_server, start_rpc_server_and_make_client
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\pydev\_pydev_comm\rpc.py", line 4, in <module>
    from _pydev_comm.server import TSingleThreadedServer
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\pydev\_pydev_comm\server.py", line 4, in <module>
    from _shaded_thriftpy.server import TServer
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\third_party\thriftpy\_shaded_thriftpy\server.py", line 9, in <module>
    from _shaded_thriftpy.transport import (
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\third_party\thriftpy\_shaded_thriftpy\transport\__init__.py", line 57, in <module>
    from .sslsocket import TSSLSocket, TSSLServerSocket  # noqa
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.1\helpers\third_party\thriftpy\_shaded_thriftpy\transport\sslsocket.py", line 7, in <module>
    import ssl
  File "C:\Users\abhil\AppData\Local\Continuum\anaconda3\envs\HeisenbergPy37\lib\ssl.py", line 98, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The specified module could not be found.
Process finished with exit code 1

我在Windows 10 Pro x64和PyCharm CE 2018.3上也有同样的问题

适合我的解决方案:为所有用户重新安装Anaconda3(具有管理员权限),并选择“将python.exe添加到路径”(即使不建议这样做)。然后PyCharm成功连接,没有出现此错误

也有效的变通方法:使用其他环境(pyenv或conda)。当我在网上面对同样的问题时,它对我起了作用

我在网上看到的一些其他建议: 运行
Anaconda3\Scripts>conda更新--all

但这会引发HTTP连接错误,这可能与此有关。

可以通过手动将PyCharm中的
路径
变量添加到控制台来修复此问题

  • 打开你的蟒蛇指令
  • 通过键入
    echo%PATH%
    • 如果您使用的是Windows 7/无法复制输出,请将cmd光盘刻录到桌面,然后键入
      echo%PATH%>PATH_val.txt
    • 这将创建一个txt文件,以便您可以更轻松地复制/粘贴值
  • 在PyCharm中,转到设置->构建、执行、部署->控制台->Python控制台->单击环境变量右侧的文件夹。
  • 单击加号按钮添加新的环境变量
    • 名称应为
      PATH
    • 该值是上述
      echo%PATH%
      命令的整个输出
  • 单击确定,然后应用
    您可以尝试设置系统环境变量,如“C:\Python\Anaconda3;C:\Python\Anaconda3\Scripts; C:\Python\Anaconda3\Library\bin;”


    仅仅“C:\Python\Anaconda3\Scripts;”是不够的,它对我来说很有效。

    如果有人在搜索Eclipse PyDev,它和Rob的一样

    第4位可以在窗口->首选项->PyDev->解释器->Python解释器->环境->单击新建并添加路径


    另一种解决方案:编辑python3.7的site.py(在Lib目录中):


    以上这些对我都不起作用,但这是Windows10Enterprise上OpenSSL的一个问题。我通过从这里下载并安装OpenSSL解决了这个问题:

    我已经回答了这个问题,据我所知,这个错误是由于anaconda3/DLLs文件夹中的libcrypto文件丢失/错位造成的:

    anaconda3\Library\bin
    复制下面的文件并将它们粘贴到
    anaconda3/DLLs


    如果在虚拟环境下运行(即您已发出命令:conda activate)

    要复制的文件(libcrypto-1_1-x64.dll和libssl-1_1-x64.dll)位于以下位置: C:\USER.conda\envs\Library\bin

    必须将它们复制到:
    C:\USER.conda\envs\DLLs

    我已经更新到Python3.8(使用miniconda),并且它无法与Pycharm一起生成“anaconda环境导入ssl dll加载失败错误”。我在这里尝试了几个建议,并以不同的方式调整了env变量,但没有取得很大成功。
    最后,我更新到Pycharm 2020.2.3,它像一个魔咒一样工作,没有任何调整。

    在我的例子中,错误是从非基础conda env旋转pipenv的结果。在PyCharm中设置变量或在基本的AcANDA结构中移动文件没有帮助,因为PyHARTH在我的CONDA Env中查找这些DLL。

    所以我必须从基本conda结构中移动文件: C:\Users\AppData\Local\Continuum\anaconda3\Library\bin

    到我的conda env,从中我旋转了我在PyCharm中使用的最后一个Pipenv: C:\Users\AppData\Local\Continuum\anaconda3\envs\dll

    我必须移动文件才能使IPython正常工作:

    libcrypto-1_1-x64.dll
    libssl-1_1-x64.dll
    sqlite3.dll
    sqlite3.exe
    
    原因是并非所有库/二进制文件都传播到虚拟环境。虚拟环境可以在“根Python”中找到这些文件。由于没有模仿,VENV保持较轻

    然而,PyCharm在诸如我的设置中感到困惑,并把中间的CONDA Env当作“根Python”,并且找不到库/箱。此问题可能会在其他DLL或存储箱中显现出来


    以这种方式移动所有丢失的文件可能是值得的。

    此错误确切发生在何时?在这个环境中,您似乎拥有比只运行以下命令安装的软件包多得多:
    conda create-n anaconda python=3.7
    @user9074332不,所有这些软件包都是使用您显示的命令安装的。在我的情况下,已知的问题就是重新启动Intellij IDEA,它会自动工作……我是最初的OP,现在我尝试按照PyCharm Community 2019.1版本中的步骤操作,我无法粘贴echo%PATH%的输出。看起来PyCharm现在希望粘贴的值包含变量名、等号,然后是变量值。在终端中,键入echo PATH=%PATH%| clip。这将复制PyCharm期望的格式,然后您可以单击环境变量屏幕上的粘贴按钮。为什么需要激活conda环境?它到底在做什么,像是在创建虚拟环境吗?因为OP使用了一个新的Anaconda环境,所以到解释器的路径是不同的。您可以自己尝试,在基本环境中键入echo%PATH%,然后在激活其他命令后再次运行该命令-输出将不同。对后一个问题是;这些环境是Anaconda对虚拟环境的实现。必须在特定模块运行配置中进行此更改(添加PATH环境变量)为什么要注释?这正是我需要的答案。添加
    C:\Python\Anaconda3\Library\bin
    fix
    from os.path import join, abspath, dirname
    base_path = dirname(dirname(abspath(__file__)))
    os.environ['PATH'] = '%s%s' % (
        os.environ['PATH'],
        join(base_path, 'Library', 'bin'),
    )
    
    -   libcrypto-1_1-x64.dll
    -   libssl-1_1-x64.dll 
    
    libcrypto-1_1-x64.dll
    libssl-1_1-x64.dll
    sqlite3.dll
    sqlite3.exe