我正在尝试使用 ubuntu (wsl) 中的 pythonnet 从 .net 运行 python 脚本。但是当import ssl
,我收到以下错误
Python.Runtime.PythonException: ModuleNotFoundError : No module named '_ssl'
File "/usr/local/lib/python3.8/ssl.py", line 98, in <module>
import _ssl # if we can't import it, let the error propagate
但我安装了openssl。从python运行以下import ssl
ssl.OPENSSL_VERSION
正确返回 'OpenSSL 1.1.1f 31 Mar 2020'
我尝试将“/lib:/usr/lib”添加到 PYTHONPATH env 和 PythonEngine.PythonPath
但它仍然无法从 pythonnet 中找到 _ssl.so
最佳答案
发现了问题。
我需要添加 /usr/local/lib/python3.8/lib-dynload
至PythonEngine.PythonPath
.不知何故
仅添加 /usr/local/lib/python3.8
是不足够的。
所以我最终不得不列出所有这些/usr/local/lib/python3.8:/usr/local/lib/python3.8/lib-dynload:/usr/local/lib/python3.8/site-packages
让它发挥作用
不确定解析 python.net 使用的 python 模块的遍历逻辑是什么。如果有人对此有解释,请发布答案
关于linux中的pythonnet无法导入ssl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68313799/