对 "pyOpenSSL" 模块未被确认感到沮丧

Frustrated with "pyOpenSSL" module not be acknowledged

环境:OS X BigSur 11.2.2; MacBook Pro 英特尔

我正在尝试让 pyOpenSSL 在 Python3 环境中工作。我一直致力于从使用 Py2 转换为 Py3。我可以轻松地在 Python2 中完成这项工作;但出于显而易见的原因,我真的需要下车 Python2。

在我的 python 脚本中,我只有以下命令:“导入 pyOpenSSL”。我也尝试过“导入 OpenSSL”和“导入密码学”,所有这些也会产生类似的“No module named ...”错误。无论语法、拼写还是大小写,都不起作用。

经过以下所有尝试,安装成功;我用“pip3 list”进行了验证。

我试过:

我什至在 python 中验证了该模块是使用以下命令安装的:

import pkg_resources
installed_packages = pkg_resources.working_set
installed_packages_list = sorted(["%s==%s" % (i.key, i.version)
   for i in installed_packages])
print(installed_packages_list)
['appdirs==1.4.4', 'cffi==1.14.5', 'cryptography==3.4.6', 'distlib==0.3.1', 'filelock==3.0.12', 'pbr==5.5.1', 'pip==21.0.1', 'pycparser==2.20', 'pyopenssl==19.1.0', 'setuptools==49.2.1', 'six==1.15.0', 'stevedore==3.3.0', 'virtualenv-clone==0.5.4', 'virtualenv==20.4.2', 'virtualenvwrapper==4.8.4']

即使使用非 pip,也显示至少安装了“openSSL”。

>>> help("modules")

Please wait a moment while I gather a list of all available modules...

/Users/jewettg/.pyenv/versions/3.8.7/lib/python3.8/site-packages/setuptools/distutils_patch.py:25: UserWarning: Distutils was imported before Setuptools. This usage is discouraged and may exhibit undesirable behaviors or errors. Please use Setuptools' objects directly or at least import Setuptools first.
  warnings.warn(
OpenSSL             _thread             functools           resource
__future__          _threading_local    gc                  rlcompleter
_abc                _tkinter            genericpath         runpy
_ast                _tracemalloc        getopt              sched
_asyncio            _uuid               getpass             secrets
_bisect             _warnings           gettext             select
_blake2             _weakref            glob                selectors
_bootlocale         _weakrefset         grp                 setuptools
_bz2                _xxsubinterpreters  gzip                shelve
_cffi_backend       _xxtestfuzz         hashlib             shlex
_codecs             abc                 heapq               shutil

我不知道我做错了什么!求助!?

我无法告诉您有关 pyenv 或其他管理器的信息,但是 conda 很少让我失望。我已经验证我可以从一个干净的 conda env w/ python3.8 安装这个库并导入它:

(base) $ conda create python=3.8 -n pyssl
...
(base) $ conda activate pyssl
(pyssl) $ pip install pyopenssl
...
Successfully installed cffi-1.14.5 cryptography-3.4.6 pycparser-2.20 pyopenssl-20.0.1 six-1.15.0
(pyssl) $ python
Python 3.8.8 (default, Feb 24 2021, 21:46:12)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import OpenSSL
>>>

所以您几乎肯定会想要 import OpenSSL。我在 Windows,但使用的是 WSL2。不过,None 应该很重要。

通常当这些问题发生时,是因为你已经将库安装到一个 Python 解释器,但不小心调用了一个 不同的 解释器(你没有安装lib) 当你实际上 运行.