首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >certbort命令返回ModuleNotFoundError:没有名为'_cffi_backend‘的模块

certbort命令返回ModuleNotFoundError:没有名为'_cffi_backend‘的模块
EN

Stack Overflow用户
提问于 2020-04-20 10:54:27
回答 3查看 3.7K关注 0票数 1

我按照一个指南来运行我的python flask应用程序,现在是我使用certbot将http转换为https的最后一步了。但是当我运行certbot命令sudo certbot --nginx -d domainname -d www.domainname时,我得到了ModuleNotFoundError: No module named '_cffi_backend'

整个错误是:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "/usr/bin/certbot", line 11, in <module>
    load_entry_point('certbot==0.31.0', 'console_scripts', 'certbot')()
  File "/home/mc-obfuscator/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 490, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/home/mc-obfuscator/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2859, in load_entry_point
    return ep.load()
  File "/home/mc-obfuscator/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2450, in load
    return self.resolve()
  File "/home/mc-obfuscator/.local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2456, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python3/dist-packages/certbot/main.py", line 10, in <module>
    import josepy as jose
  File "/usr/lib/python3/dist-packages/josepy/__init__.py", line 44, in <module>
    from josepy.interfaces import JSONDeSerializable
  File "/usr/lib/python3/dist-packages/josepy/interfaces.py", line 8, in <module>
    from josepy import errors, util
  File "/usr/lib/python3/dist-packages/josepy/util.py", line 4, in <module>
    import OpenSSL
  File "/usr/lib/python3/dist-packages/OpenSSL/__init__.py", line 8, in <module>
    from OpenSSL import crypto, SSL
  File "/usr/lib/python3/dist-packages/OpenSSL/crypto.py", line 12, in <module>
    from cryptography import x509
  File "/usr/lib/python3/dist-packages/cryptography/x509/__init__.py", line 8, in <module>
    from cryptography.x509.base import (
  File "/usr/lib/python3/dist-packages/cryptography/x509/base.py", line 16, in <module>
    from cryptography.x509.extensions import Extension, ExtensionType
  File "/usr/lib/python3/dist-packages/cryptography/x509/extensions.py", line 18, in <module>
    from cryptography.hazmat.primitives import constant_time, serialization
  File "/usr/lib/python3/dist-packages/cryptography/hazmat/primitives/constant_time.py", line 9, in <module>
    from cryptography.hazmat.bindings._constant_time import lib
ModuleNotFoundError: No module named '_cffi_backend'

我希望有人能帮助我,因为我发现有很多人在问关于这个神秘的_cffi_backend的问题。

更多信息:

如果我执行python3 -m pip install cffi,它会显示需求已经满足。

当我安装其他东西并尝试不同的人解决方案时,我也得到了这个错误。似乎可以通过执行sudo apt-get install python3-apt --reinstall来修复的'ModuleNotFoundError: No module named 'apt_pkg',但现在我得到了:ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

我还创建了一个与/usr/lib/python3/dist-package/apt_pkg.so -> apt_pkg.cpython-36m-x86_64-linux-gnu.的符号链接,所以其他人说可以用。我运行的是python 3.8,但服务器上可能也有3.6。如果我执行python,它将打开3.8shell。我也在运行ubuntu 18.04.4。

ls -al /usr/bin | grep python提供了:

代码语言:javascript
运行
复制
-rwxr-xr-x  1 root   root        1056 Apr 16  2018 dh_python2
lrwxrwxrwx  1 root   root          23 Nov  7 10:07 pdb2.7 -> ../lib/python2.7/pdb.py
lrwxrwxrwx  1 root   root          23 Nov  7 10:44 pdb3.6 -> ../lib/python3.6/pdb.py
lrwxrwxrwx  1 root   root          23 Nov  7 10:50 pdb3.7 -> ../lib/python3.7/pdb.py
lrwxrwxrwx  1 root   root          23 Oct 28 16:14 pdb3.8 -> ../lib/python3.8/pdb.py
lrwxrwxrwx  1 root   root          31 Oct 25  2018 py3versions -> ../share/python3/py3versions.py
lrwxrwxrwx  1 root   root          24 Jun 19  2019 python -> /etc/alternatives/python
lrwxrwxrwx  1 root   root          16 Apr 16  2018 python-config -> python2.7-config
lrwxrwxrwx  1 root   root           9 Apr 16  2018 python2 -> python2.7
lrwxrwxrwx  1 root   root          16 Apr 16  2018 python2-config -> python2.7-config
-rwxr-xr-x  1 root   root     3637096 Nov  7 10:07 python2.7
lrwxrwxrwx  1 root   root          33 Nov  7 10:07 python2.7-config -> x86_64-linux-gnu-python2.7-config
lrwxrwxrwx  1 root   root          25 Jan  5 10:38 python3 -> /etc/alternatives/python3
-rwxr-xr-x  1 root   root         384 Feb  5  2018 python3-futurize
-rwxr-xr-x  1 root   root         388 Feb  5  2018 python3-pasteurize
-rwxr-xr-x  1 root   root         152 Nov 11  2017 python3-pbr
-rwxr-xr-x  2 root   root     4526456 Nov  7 10:44 python3.6
-rwxr-xr-x  2 root   root     4526456 Nov  7 10:44 python3.6m
-rwxr-xr-x  2 root   root     4873376 Nov  7 10:50 python3.7
-rwxr-xr-x  2 root   root     4873376 Nov  7 10:50 python3.7m
-rwxr-xr-x  1 root   root     5203488 Oct 28 16:14 python3.8
lrwxrwxrwx  1 root   root          10 Oct 25  2018 python3m -> python3.6m
lrwxrwxrwx  1 root   root          29 Apr 16  2018 pyversions -> ../share/python/pyversions.py
lrwxrwxrwx  1 root   root          10 Sep 27  2018 uwsgi_python36 -> uwsgi-core
lrwxrwxrwx  1 root   root          33 Apr 16  2018 x86_64-linux-gnu-python-config -> x86_64-linux-gnu-python2.7-config
-rwxr-xr-x  1 root   root        2971 Nov  7 10:07 x86_64-linux-gnu-python2.7-config

这些文件确实存在于我的系统中,因为:

代码语言:javascript
运行
复制
dpkg -l python3-cffi-backend python3-cryptography
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                                  Version                         Architecture                    Description
+++-=====================================================-===============================-===============================-===============================================================================================================
ii  python3-cffi-backend                                  1.11.5-1                        amd64                           Foreign Function Interface for Python 3 calling C code - runtime
ii  python3-cryptography                                  2.1.4-1ubuntu1.3                amd64                           Python library exposing cryptographic recipes and primitives (Python 3)
EN

Stack Overflow用户

发布于 2021-10-23 13:53:49

在Ubuntu18.04系统上安装了多个版本的python3,默认的python3 (3.9)与(apt管理的)系统版本(3.6)不同。使用update-alternatives将默认值设置为系统版本允许certbot按预期运行。例如:

代码语言:javascript
运行
复制
update-alternatives --config python3
There are 3 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.9   3         auto mode
  1            /usr/bin/python3.6   1         manual mode
  2            /usr/bin/python3.8   2         manual mode
  3            /usr/bin/python3.9   3         manual mode

Press <enter> to keep the current choice[*], or type selection number: 1

然后在完成后将其切换回来。

票数 3
EN
查看全部 3 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61314440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档