堆栈: window 8.1 Anaconda2/python 3.7 环境 Pycharm专业版2017.3
问题: 无法导入 ssl 模块(将问题范围缩小到加载 _ssl.pyd):
ImportError: DLL load failed: The specified module could not be found.
我尝试过的:
如果我使用 Windows 控制台激活 conda 环境并尝试导入 ssl,它会起作用
pycharm中的sys.path输出:
['C:/Users/vlad/Documents/DjangoProjects/cryptodata/playing_around_aiohttp', 'C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev', 'C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev', 'C:\Users\vlad\.PyCharm2017.3\system\cythonExtensions', 'C:\ProgramData\Anaconda2\envs\373\python37.zip', 'C:\ProgramData\Anaconda2\envs\373\DLLs', 'C:\ProgramData\Anaconda2\envs\373\lib', 'C:\ProgramData\Anaconda2\envs\373', 'C:\ProgramData\Anaconda2\envs\373\lib\site-packages', 'C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pycharm_matplotlib_backend']
win 控制台中的 sys.path 输出:
['', 'C:\ProgramData\Anaconda2\envs\373\python37.zip', 'C:\ProgramData\Anaconda2\envs\373\DLLs', 'C:\ProgramData\Anaconda2\envs\373\lib', 'C:\ProgramData\Anaconda2\envs\373', 'C:\ProgramData\Anaconda2\envs\373\lib\site-packages']
imp.find_module('_ssl')在pycharm中的输出:
(<_io.BufferedReader name='C:\ProgramData\Anaconda2\envs\373\DLLs\_ssl.pyd'>, 'C:\ProgramData\Anaconda2\envs\373\DLLs\_ssl.pyd', ('.pyd', 'rb', 3))
imp.find_module('_ssl') 在 Windows 控制台中输出:
(<_io.BufferedReader name='C:\ProgramData\Anaconda2\envs\373\DLLs\_ssl.pyd'>, 'C:\ProgramData\Anaconda2\envs\373\DLLs\_ssl.pyd', ('.pyd', 'rb', 3))
在 Windows 控制台中,我成功“导入_ssl”,然后执行
_ssl.__file__
其输出为“C:\ProgramData\Anaconda2\envs\373\DLLs\_ssl.pyd”
我错过了什么吗?这是怎么回事?
最佳答案
通过卸载 Anaconda 并使用 virtualenv 来解决问题。我使用 virtualenv 而不是 Anaconda 的决定是主观的。
我做了什么:
- 卸载 Anaconda
- 安装最新的Python
- 安装 pip
- 安装 virtualenv
- 在每个工作项目中创建 virtualenv。使用“env/Scripts/activate”启用环境
- 将 pycharm 项目解释器设置为虚拟环境可执行文件。 Pycharm 应该默认检测到它
关于python - Pycharm:导入 ssl 模块时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56648158/