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?
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? (ˇˍˇ)
mac osx
+ Python2.7.13
openssl
.0.9.8zh 14 Jan 2016
.brew install openssl
, versi saat ini adalah stable 1.0.2l
.brew install [email protected]
, versi ini akan menyebabkan masalah No Module Found Urllib3
.
brew uninstall [email protected]
# openssl: stable 1.0.2l
brew install openssl
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 --upgradeSeperti 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:
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.
PRETTY_NAME="CentOS Linux 7 (Core)"
certbot.noarch 0.19.0-1.el7 @epel
yum install certbot-nginx
pip freeze
ditampilkan di bawah iniacme==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.
Komentar yang paling membantu
Memperbarui. Ini sepertinya telah memperbaikinya ...
pip install requests urllib3 pyOpenSSL --force --upgrade