Certbot: ImportError: Tidak ada modul bernama 'requests.packages.urllib3'

Dibuat pada 12 Sep 2017  ·  37Komentar  ·  Sumber: certbot/certbot

Saya menggunakan nginx di centos 7.3, ada kesalahan saat menjalankan certbot --nginx :

ImportError: No module named 'requests.packages.urllib3'

[root<strong i="9">@demo</strong> src]# certbot --nginx
Traceback (most recent call last):
  File "/usr/bin/certbot", line 9, in <module>
    load_entry_point('certbot==0.14.1', 'console_scripts', 'certbot')()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 564, in load_entry_point
    return get_distribution(dist).load_entry_point(group, name)
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2662, in load_entry_point
    return ep.load()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2316, in load
    return self.resolve()
  File "/usr/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2322, in resolve
    module = __import__(self.module_name, fromlist=['__name__'], level=0)
  File "/usr/lib/python2.7/site-packages/certbot/main.py", line 14, in <module>
    from certbot import account
  File "/usr/lib/python2.7/site-packages/certbot/account.py", line 17, in <module>
    from acme import messages
  File "/usr/lib/python2.7/site-packages/acme/messages.py", line 4, in <module>
    from acme import challenges
  File "/usr/lib/python2.7/site-packages/acme/challenges.py", line 10, in <module>
    import requests
  File "/usr/lib/python2.7/site-packages/requests/__init__.py", line 58, in <module>
    from . import utils
  File "/usr/lib/python2.7/site-packages/requests/utils.py", line 32, in <module>
    from .exceptions import InvalidURL
  File "/usr/lib/python2.7/site-packages/requests/exceptions.py", line 10, in <module>
    from .packages.urllib3.exceptions import HTTPError as BaseHTTPError
  File "/usr/lib/python2.7/site-packages/requests/packages/__init__.py", line 95, in load_module
    raise ImportError("No module named '%s'" % (name,))
ImportError: No module named 'requests.packages.urllib3'

paket:

[root<strong i="13">@demo</strong> src]# pip list
acme (0.14.1)
backports.ssl-match-hostname (3.4.0.2)
certbot (0.14.1)
certifi (2017.7.27.1)
cffi (1.6.0)
chardet (3.0.4)
Cheetah (2.4.4)
cloud-init (0.7.6)
ConfigArgParse (0.11.0)
configobj (4.7.2)
cryptography (1.3.1)
decorator (3.4.0)
enum34 (1.0.4)
future (0.16.0)
idna (2.6)
iniparse (0.4)
ipaddress (1.0.16)
IPy (0.75)
Jinja2 (2.9.6)
jsonpatch (1.16)
jsonpointer (1.10)
kitchen (1.1.1)
Markdown (2.6.8)
MarkupSafe (1.0)
mock (1.0.1)
ndg-httpsclient (0.3.2)
oauth (1.0.1)
parsedatetime (1.5)
perf (0.1)
pip (9.0.1)
ply (3.4)
policycoreutils-default-encoding (0.1)
prettytable (0.7.2)
psutil (2.2.1)
pyasn1 (0.1.9)
pycparser (2.14)
pycurl (7.19.0)
pygobject (3.14.0)
pygpgme (0.3)
pyliblzma (0.5.3)
pyOpenSSL (0.13.1)
pyparsing (1.5.6)
pyRFC3339 (1.0)
python2-pythondialog (3.3.0)
pytz (2012d)
pyudev (0.15)
pyxattr (0.5.1)
PyYAML (3.12)
requests (2.18.4)
seobject (0.1)
sepolicy (1.1)
setuptools (36.2.7)
six (1.9.0)
slip (0.4.0)
slip.dbus (0.4.0)
urlgrabber (3.10)
urllib3 (1.22)
yum-axelget (1.0.4)
yum-metadata-parser (1.1.4)
zope.component (4.1.0)
zope.event (4.0.3)
zope.interface (4.0.5)

Apa yang harus saya lakukan?

fedora / redhat / CentOS pkging debugging

Komentar yang paling membantu

Memperbarui. Ini sepertinya telah memperbaikinya ...

pip install requests urllib3 pyOpenSSL --force --upgrade

Semua 37 komentar

Bagaimana Anda menginstal certbot?
Kemungkinan pip menginstal urllib3 harus memperbaikinya - tetapi mungkin ada cara yang lebih mudah. Misalnya itu dikemas sebagai rpm, yang kemungkinan merupakan cara yang disukai untuk menginstalnya di centos: https://www.rpmfind.net/linux/rpm2html/search.php?query=python-urllib3
Tetapi mengejutkan bahwa tidak ada yang menginstal ini sebagai dependensi. Apakah Anda menginstal certbot dari manajer paket Anda? Apakah Anda mengikuti instruksi ini? https://certbot.eff.org/#centosrhel7 -nginx

@SwartzCr Ya, saya melakukannya dengan mengikuti https://certbot.eff.org/#centosrhel7 -nginx

Dapatkah Anda mencoba memperbarui versi permintaan Anda dan enam versi seperti yang disebutkan di # 4886 - Saya pikir itu masalah yang sama. @erikrose apakah ini situasi di mana kita perlu mengirimkan sesuatu ke centOS atau RHEL?

Dia sepertinya sudah memiliki versi permintaan terbaru, dan enam sudah ada, jadi situasinya berbeda dari # 4884.

Di CentOS 7, satu-satunya cara untuk mendapatkan urllib3 (1.22) adalah menggunakan pip install. Versi yum dengan epel sudah sangat tua: python-urllib3.noarch 0: 1.10.2-3.el7 dan memicu kesalahan versi yang salah. Tetapi, setelah menginstal certbot-apache dengan urllib3 v.1.22 di tempatnya, Anda mendapatkan ini saat menjalankan certbot --apache :
ImportError: No module named 'requests.packages.urllib3'
Saya rasa saya memiliki semua paket terbaru:
certbot (0.18.1) certbot-apache (0.18.1) certifi (2017.7.27.1) pycurl (7.19.0) requests (2.18.4) six (1.11.0) urlgrabber (3.10) urllib3 (1.22)

Memperbarui. Ini sepertinya telah memperbaikinya ...

pip install requests urllib3 pyOpenSSL --force --upgrade

Tetapi kemudian Anda mendapatkan ini saat menjalankan certbot --apache :
AttributeError: 'module' object has no attribute 'rand'

Melihat masalah yang sama pada instalasi baru centos 7.3. Juga mencoba menginstal python2-certbot , mendapatkan kesalahan yang sama seperti @wardmundy . Mencoba menjalankan certbot-2 --standalone .

Saya sudah mencoba menginstal versi yang lebih lama, 0.14.0, mendapat kesalahan yang sama. Saya pergi ke jalur manual, itu berhasil, saya mendapatkan sertifikat saya dengan sukses.

@wardmundy dan @akosveres masalah rand telah diperbaiki di https://github.com/certbot/certbot/commit/7f5f6471fea939c70294c2f31875d90320482861
dan akan segera dirilis dalam rilis perbaikan bug dengan nomor versi 0.18.2
Hal ini disebabkan oleh openssl yang tidak lagi mendukung rand lebih cepat dari jadwal seperti yang dibahas di sini: https://github.com/certbot/certbot/pull/5112#issuecomment -331046450
Apakah orang-orang masih mengalami masalah urllib3?

Saya mencoba menginstal certbot di Centos 7 hari ini. Saya mengikuti https://certbot.eff.org/#centosrhel7 -langkah demi selangkah lainnya.
ketika saya mencoba menjalankan sudo certbot certonly saya diberitahu bahwa urllib3 tidak ditemukan

setelah saya menjalankan pip install requests urllib3 pyOpenSSL --upgrade
pesan kesalahan berubah menjadi
ImportError: modul 'pyOpenSSL' tidak memiliki fungsionalitas yang diperlukan. Coba tingkatkan ke v0.14 atau yang lebih baru.

Saya mendapat kesalahan yang sama seperti @DeronLee .
Ada yang baru?

@jcguevara akhirnya saya menemukan cara terbaik adalah menggunakan buruh pelabuhan

Setidaknya dalam beberapa kasus ini, saya curiga dengan lingkungan Python yang rusak di mana paket telah pip diinstal, menimpa versi paket yang disediakan oleh sistem operasi Anda. Kami sangat menyarankan Anda untuk tidak melakukan ini.

Jika Anda sudah menemukan diri Anda di posisi ini, saya sarankan Anda menggunakan certbot-auto yang memiliki ketergantungan minimal pada paket Python yang ditemukan di sistem Anda.

@DeronLee terima kasih atas saran Anda.

Saya baru saja menyelesaikannya dengan mendownloadnya langsung dari GitHub dan menjalankan certbot-auto seperti yang direkomendasikan @bmw .

@jcguevara Terima kasih. Saya akan mencobanya nanti.

cerbot-auto ternyata berhasil! mengapa ada begitu banyak alat tambahan untuk melakukan ini? (ˇˍˇ)

alasan:

  • env: mac osx + Python2.7.13
  • kalian harus memeriksa versi openssl .
  • versi opensl default mac osx adalah 0.9.8zh 14 Jan 2016 .
  • bila Anda menggunakan brew install openssl , versi saat ini adalah stable 1.0.2l .
  • tetapi jika Anda menggunakan brew install [email protected] , versi ini akan menyebabkan masalah No Module Found Urllib3 .

Bagaimana cara memperbaiki:


brew uninstall [email protected]

# openssl: stable 1.0.2l
brew install openssl

  • kemudian, Anda akan menemukan masalah Urllib3 telah diperbaiki.

Setelah menjalankan perintah ini
pip install requests urllib3 pyOpenSSL --force --upgrade

Seperti yang dikatakan @DeronLee :

pesan kesalahan berubah menjadi
ImportError: modul 'pyOpenSSL' tidak memiliki fungsionalitas yang diperlukan. Coba tingkatkan ke v0.14 atau yang lebih baru.

Saya menginstal pyOpenSSL versi 16.2.0 dan itu berhasil untuk saya.
pip install pyOpenSSL==16.2.0

Terima kasih. Saya mencoba menginstal versi terbaru tetapi tidak berfungsi. Mungkin saya
harus mencoba versi khusus

Pada 11 Nov 2017 01:04, "Nguyễn Thanh Tiến" [email protected]
menulis:

Setelah menjalankan perintah ini
pip install meminta urllib3 pyOpenSSL --force --upgrade

Seperti yang dikatakan @DeronLee https://github.com/deronlee :

pesan kesalahan berubah menjadi
ImportError: modul 'pyOpenSSL' tidak memiliki fungsionalitas yang diperlukan. Mencoba
meningkatkan ke v0.14 atau yang lebih baru.

Saya menginstal pyOpenSSL versi 16.2.0 dan itu berhasil untuk saya.
pip instal pyOpenSSL == 16.2.0

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/certbot/certbot/issues/5104#issuecomment-343529478 ,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/ALj8rHCKhYhwrgCEfvzwVaveagxIVMmtks5s1IIBgaJpZM4PUFnt
.

@tokopedia
Terima kasih. Saya mencoba menginstal versi terbaru tetapi tidak berfungsi. Mungkin saya harus mencoba versi khusus

@DeronLee dapatkah Anda memberi tahu saya:

  • Versi OS apa yang Anda jalankan?
  • Versi Certbot apa yang telah Anda instal?
  • Bagaimana Anda menginstal Certbot
  • Keluaran pip freeze ?

@SwartzCr Saya memiliki masalah yang sama dengan @DeronLee
Jadi saya menjalankan perintah
pip install requests urllib3 pyOpenSSL --force --upgrade
dan saya mendapat kesalahan seperti ini:
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
Kemudian saya mencoba apa yang disebutkan @ thanhtien522 berjalan
pip install pyOpenSSL==16.2.0
Tetapi masih tidak berhasil untuk saya, saya masih mendapatkan kesalahan yang sama yang memberi tahu saya bahwa pyOpenSSL hilang.

  • OS: PRETTY_NAME="CentOS Linux 7 (Core)"
  • Versi Certbot: certbot.noarch 0.19.0-1.el7 @epel
  • Menginstal Certbot dengan menjalankan yum install certbot-nginx
  • Dan output dari pip freeze ditampilkan di bawah ini
acme==0.19.0
asn1crypto==0.23.0
backports.ssl-match-hostname==3.4.0.2
certbot==0.19.0
certbot-nginx==0.19.0
certifi==2017.11.5
cffi==1.11.2
chardet==3.0.4
Cheetah==2.4.4
cloud-init==0.7.6
ConfigArgParse==0.11.0
configobj==4.7.2
cryptography==2.1.4
decorator==3.4.0
enum34==1.1.6
future==0.16.0
idna==2.6
iniparse==0.4
ipaddress==1.0.18
IPy==0.75
Jinja2==2.9.6
jsonpatch==1.16
jsonpointer==1.12
kitchen==1.1.1
Markdown==2.6.9
MarkupSafe==1.0
mock==1.0.1
ndg-httpsclient==0.3.2
oauth==1.0.1
parsedatetime==1.5
perf==0.1
ply==3.4
policycoreutils-default-encoding==0.1
prettytable==0.7.2
psutil==2.2.1
pyasn1==0.1.9
pycparser==2.18
pycurl==7.19.0
pygobject==3.22.0
pygpgme==0.3
pyliblzma==0.5.3
pyOpenSSL==16.2.0
pyparsing==1.5.6
pyRFC3339==1.0
python-linux-procfs==0.4.9
python2-pythondialog==3.3.0
pytz==2016.10
pyudev==0.15
pyxattr==0.5.1
PyYAML==3.12
requests==2.18.4
schedutils==0.4
seobject==0.1
sepolicy==1.1
six==1.11.0
slip==0.4.0
slip.dbus==0.4.0
urlgrabber==3.10
urllib3==1.22
yum-metadata-parser==1.1.4
zope.component==4.1.0
zope.event==4.0.3
zope.interface==4.0.5

Sepertinya yang terpenting kita perlu mengubah versi pyOpenSSL yang kita andalkan untuk certbot di centos, inilah yang saya dapatkan dari instalasi baru:

Dependencies Resolved

==================================================================================================
 Package                        Arch           Version                      Repository       Size
==================================================================================================
Installing:
 python2-certbot-nginx          noarch         0.19.0-1.el7                 epel             53 k
Installing for dependencies:
 certbot                        noarch         0.19.0-1.el7                 epel             20 k
 dialog                         x86_64         1.2-4.20130523.el7           base            208 k
 pyOpenSSL                      x86_64         0.13.1-3.el7                 base            133 k
 pyparsing                      noarch         1.5.6-9.el7                  base             94 k
 python-cffi                    x86_64         1.6.0-5.el7                  base            218 k
 python-enum34                  noarch         1.0.4-1.el7                  base             52 k
 python-idna                    noarch         2.4-1.el7                    base             94 k
 python-ipaddress               noarch         1.0.16-2.el7                 base             34 k
 python-ndg_httpsclient         noarch         0.3.2-1.el7                  epel             43 k
 python-parsedatetime           noarch         1.5-3.el7                    epel             61 k
 python-ply                     noarch         3.4-11.el7                   base            123 k
 python-pycparser               noarch         2.14-1.el7                   base            104 k
 python-zope-component          noarch         1:4.1.0-3.el7                epel            227 k
 python-zope-event              noarch         4.0.3-2.el7                  epel             79 k
 python-zope-interface          x86_64         4.0.5-4.el7                  base            138 k
 python2-acme                   noarch         0.19.0-1.el7                 epel            176 k
 python2-certbot                noarch         0.19.0-1.el7                 epel            471 k
 python2-configargparse         noarch         0.11.0-1.el7                 epel             30 k
 python2-cryptography           x86_64         1.7.2-1.el7_4.1              updates         502 k
 python2-dialog                 noarch         3.3.0-6.el7                  epel             94 k
 python2-future                 noarch         0.16.0-2.el7                 epel            799 k
 python2-mock                   noarch         1.0.1-9.el7                  epel             92 k
 python2-psutil                 x86_64         2.2.1-3.el7                  epel            116 k
 python2-pyasn1                 noarch         0.1.9-7.el7                  base            100 k
 python2-pyrfc3339              noarch         1.0-2.el7                    epel             13 k
 pytz                           noarch         2016.10-2.el7                base             46 k

Di mana itu mungkin versi di atas 0,14
Yang mungkin berarti bahwa seseorang perlu mengemasnya untuk centos - @bmw adalah @hogarthj orang yang harus saya hubungi tentang itu?

Ya, hogarthj adalah kontak pengemasan Red Hat / Fedora kami tetapi lebih responsif melalui email. Saya dengan senang hati memperkenalkan Anda kapan-kapan, tetapi menurut saya tidak ada perubahan yang diperlukan dari dia di sini.

CentOS 7 adalah salah satu platform kami yang lebih populer dan kami secara teratur menguji CentOS 7 tanpa masalah. Sebagian besar orang di utas ini melaporkan memiliki permintaan 2.18.x. Permintaan 2.6.0 disertakan dalam repo CentOS 7. Jika Anda mencampur paket Python dari OS Anda dan pip , Anda akan mendapatkan waktu yang buruk.

Orang-orang di CentOS 7 yang mengalami masalah ini dapat mengatasi masalah tersebut dengan membatalkan perubahan pada paket Python mereka yang dilakukan melalui pip atau dengan menggunakan certbot-auto yang mengatasi masalah tersebut dengan tidak bergantung pada paket Python yang diinstal pada sistem Anda .

Saya mengikuti petunjuk ini (versi urllib3 saya tidak berfungsi dengan baik) dan kemudian certbot dapat dijalankan ... Semoga itu membantu.

Saya yakin ini dapat diciutkan menjadi lebih sedikit perintah ...

permintaan uninstall pip
pip uninstall urllib3
yum hapus python-urllib3
yum hapus permintaan-python
yum instal python-urllib3
yum instal permintaan-python
yum instal certbot

Saya telah mencobanya, menggunakan perintah ini, dan berhasil!

pip uninstall requests
pip uninstall urllib3
yum remove python-urllib3
yum remove python-requests
yum install python-urllib3
yum install python-requests
yum install certbot
yum install docker-compose

apakah kita bisa menggunakan pip nanti setelah menggunakan yum?

@sreezree Anda tidak boleh menggunakan pip untuk menginstal paket terkait certbot karena akan bertentangan dengan paket yang diinstal certbot

Tak satu pun dari metode yang disebutkan di atas berfungsi untuk saya, pesan kesalahannya tetap sama. ImportError: No module named 'requests.packages.urllib3'

Saya mengalami kesalahan yang sama di CentOS 7.4:
ImportError: Tidak ada modul bernama 'requests.packages.urllib3'
dan mencoba solusi yang disarankan smalenfant. Bekerja dengan indah.

Saya mendapat kesalahan yang sama.

Saya menemukan bahwa ada kesalahan saat menginstal certbot

  Installing : pytz-2016.10-2.el7.noarch                                                                                                                  12/55
  Installing : python2-parsedatetime-2.4-5.el7.noarch                                                                                                     13/55
  Installing : python-urllib3-1.10.2-5.el7.noarch                                                                                                         14/55
Error unpacking rpm package python-urllib3-1.10.2-5.el7.noarch
error: unpacking of archive failed on file /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname: cpio: rename
  Installing : libsemanage-python-2.5-11.el7.x86_64                                                                                                       15/55
error: python-urllib3-1.10.2-5.el7.noarch: install failed
  Installing : python-ndg_httpsclient-0.3.2-1.el7.noarch                                                                                                  16/55
  Installing : python2-six-1.9.0-0.el7.noarch                                                                                                             17/55

error: unpacking of archive failed on file /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname: cpio: rename

error: python-urllib3-1.10.2-5.el7.noarch: install failed

dan saya coba instal ulang kemudian mendapat error yang sama

# yum install python-urllib3
Error unpacking rpm package python-urllib3-1.10.2-5.el7.noarch
error: unpacking of archive failed on file /usr/lib/python2.7/site-packages/urllib3/packages/ssl_match_hostname: cpio: rename
  Verifying  : python-urllib3-1.10.2-5.el7.noarch                                                                                                           1/1

Failed:
  python-urllib3.noarch 0:1.10.2-5.el7

Complete!

gagal tapi pertunjukan terakhir Complete! , bagaimana Complete! ?

jadi saya gg menemukan teman tianchao mengatakan itu bertentangan dengan versi pip

https://blog.csdn.net/u013614281/article/details/76832818

dan saya menghapus versi pip dan menginstal versi yum

pip uninstall urllib3
yum install python-urllib3

setelah itu saya mendapat kesalahan lagi

pkg_resources.DistributionNotFound: The 'urllib3<1.23,>=1.21.1' distribution was not found and is required by requests

jadi, apa apaan, aku menangis 😭

setelah itu coba

pip uninstall requests
yum remove python-requests
yum install python-requests
yum install certbot

dan berhasil .....

jadi saya pikir versi permintaan tidak cocok dengan urllib3

jadi itu mencoba di mesin env yang sama antera

pertama hapus permintaan dan urllib3

pip uninstall requests
pip uninstall urllib3
yum remove python-urllib3
yum remove python-requests

instal certbot

itu OK

Kesalahan ini sebenarnya dicetak karena percobaan..catch yang gagal di kode python internal permintaan:

try: 
   import urllib3
except: 
   import requests.packages.urllib3

Masalah ini terjadi ketika urllib3 tidak dapat ditemukan, tetapi juga ketika urllib3 tidak dapat dimuat karena alasan apa pun.

Anda dapat menghapus cerbot lama, dan kemudian mencoba menginstalnya melalui pip. yang seharusnya berhasil.

sudo pip install certbot

Saya telah mencobanya, menggunakan perintah ini, dan berhasil!

pip uninstall requests
pip uninstall urllib3
yum remove python-urllib3
yum remove python-requests
yum install python-urllib3
yum install python-requests
yum install certbot
yum install docker-compose

Bagus, masalah teratasi!

Disarankan untuk menginstal dengan

Untuk memperjelas, metode instalasi yang direkomendasikan pada sistem berbasis RHEL 7 adalah dengan menggunakan EPEL .

Masalah di utas ini biasanya disebabkan oleh instalasi Python yang rusak yang disebabkan oleh paket yang diinstal dari pip bertentangan dengan paket yang diinstal dari yum . Menghapus paket yang telah Anda instal melalui pip seharusnya menyelesaikan masalah.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat