windonw cmd下的输出:
(python3.9) PS D:\git\ImageAnalysisService\core\medical_bills> python
Python 3.9.19 (main, May 6 2024, 20:12:36) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import exceptiongroup
>>> import anyio
>>> import ssl
>>> import _ssl
>>> print(ssl)
<module 'ssl' from 'D:\\conda\\envs\\python3.9\\lib\\ssl.py'>
>>> print(_ssl)
<module '_ssl' from 'D:\\conda\\envs\\python3.9\\DLLs\\_ssl.pyd'>
>>>
pycharm下的输出:
D:\git\ImageAnalysisService\venv\Scripts\python.exe D:\git\ImageAnalysisService\core\medical_bills\analysis_system.py
Traceback (most recent call last):
File "D:\git\ImageAnalysisService\core\medical_bills\analysis_system.py", line 10, in <module>
import ssl
File "D:\conda\envs\python3.9\lib\ssl.py", line 99, in <module>
import _ssl # if we can't import it, let the error propagate
ImportError: DLL load failed while importing _ssl: 找不到指定的模块。
环境相同,都是同一个虚拟环境的,怎么不同地方会有问题呢?
环境中分明是有这个包的,但是就是找不到,看这个_ssl包的路径和ssl包路径不同,猜想是可以copy一份到DLL路径中或者是lib路径中;
结合博客中https://blog.csdn.net/LeiChennb/article/details/134586416的说法:
因为缺少DLL,但是博客中是在conda上操作,我想,应该在conda env中操作,对虚拟环境进行操作;
如此操作:
将
"D:\conda\envs\python3.9\Library\bin\libcrypto-3-x64.dll"
"D:\conda\envs\python3.9\Library\bin\libssl-3-x64.dll"
复制到:
"D:\conda\envs\python3.9\DLLs"
果然就解决了问题;