Utilizo nginx en centos 7.3, hay un error al ejecutar 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'
paquetes:
[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)
¿Qué tengo que hacer?
¿Cómo instalaste certbot?
Es probable que pip instalando urllib3 lo solucione, pero podría haber una manera más fácil. Por ejemplo, está empaquetado como rpm, que probablemente sea la forma preferida de instalarlo en centos: https://www.rpmfind.net/linux/rpm2html/search.php?query=python-urllib3
Pero es sorprendente que nada instale esto como una dependencia. ¿Instaló certbot desde su administrador de paquetes? ¿Seguiste estas instrucciones? https://certbot.eff.org/#centosrhel7 -nginx
@SwartzCr Sí, lo hice siguiendo https://certbot.eff.org/#centosrhel7 -nginx
¿Puede intentar actualizar sus versiones de solicitudes y seis como se menciona en el n. ° 4886? Creo que es el mismo problema. @erikrose, ¿ es esta una situación en la que debemos enviar algo en sentido ascendente a centOS o RHEL?
Parece que ya tiene la última versión de las solicitudes, y hay seis, por lo que es una situación diferente a la # 4884.
En CentOS 7, la única forma de obtener urllib3 (1.22) es usando pip install. La versión de yum con epel es muy antigua: python-urllib3.noarch 0: 1.10.2-3.el7 y genera un error de versión incorrecta. Pero, después de instalar certbot-apache con urllib3 v.1.22 en su lugar, obtiene esto cuando ejecuta certbot --apache :
ImportError: No module named 'requests.packages.urllib3'
Creo que tengo todos los paquetes más recientes en su lugar:
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)
Actualizar. Esto parece haberlo solucionado ...
pip install requests urllib3 pyOpenSSL --force --upgrade
Pero luego obtienes esto cuando ejecutas certbot --apache :
AttributeError: 'module' object has no attribute 'rand'
Viendo el mismo problema en una nueva instalación de centos 7.3. También intenté instalar python2-certbot
, obteniendo el mismo error que @wardmundy . Estaba intentando ejecutar certbot-2 --standalone
.
Intenté instalar una versión anterior, 0.14.0, obtuve el mismo error. Seguí la ruta manual, eso funcionó, obtuve mi certificado con éxito.
@wardmundy y @akosveres, el problema del rand se solucionó en https://github.com/certbot/certbot/commit/7f5f6471fea939c70294c2f31875d90320482861
y se lanzará pronto en una versión de corrección de errores con el número de versión 0.18.2
Esto se debió a que openssl desaprobó su soporte de rand antes de lo previsto, como se explica aquí: https://github.com/certbot/certbot/pull/5112#issuecomment -331046450
¿Las personas siguen experimentando problemas con urllib3?
Intenté instalar certbot en Centos 7 hoy. Sigo este https://certbot.eff.org/#centosrhel7 -otro paso a paso.
cuando intento ejecutar sudo certbot certonly
me dice que no se encuentra el urllib3
después de ejecutar pip install requests urllib3 pyOpenSSL --upgrade
el mensaje de error cambia a
ImportError: al módulo 'pyOpenSSL' le falta la funcionalidad requerida. Intente actualizar a v0.14 o más reciente.
Recibí el mismo error como @DeronLee .
¿Algo nuevo?
@jcguevara finalmente encontré que la mejor manera es usar docker
Al menos en algunos de estos casos, sospecho de los entornos de Python corruptos donde los paquetes se han pip
instalados, anulando las versiones de los paquetes proporcionados por su sistema operativo. Le recomendamos encarecidamente que no haga esto.
Si ya se encuentra en esta posición, le recomiendo que use certbot-auto, que tiene una dependencia mínima de los paquetes de Python que se encuentran en su sistema.
@DeronLee gracias por tu consejo.
Simplemente lo resuelvo descargándolo directamente desde GitHub y ejecutando certbot-auto como recomienda @bmw .
@jcguevara Gracias. Voy a intentarlo más tarde.
cerbot-auto sorprendentemente funciona! ¿Por qué hay tantas herramientas adicionales para hacer esto? (ˇˍˇ)
mac osx
+ Python2.7.13
openssl
.0.9.8zh 14 Jan 2016
.brew install openssl
, la versión actual es stable 1.0.2l
.brew install [email protected]
, esta versión Causará No Module Found Urllib3
problema.
brew uninstall [email protected]
# openssl: stable 1.0.2l
brew install openssl
Urllib3
está solucionado.Después de ejecutar este comando
pip install requests urllib3 pyOpenSSL --force --upgrade
Como dijo @DeronLee :
el mensaje de error cambia a
ImportError: al módulo 'pyOpenSSL' le falta la funcionalidad requerida. Intente actualizar a v0.14 o más reciente.
Instalo pyOpenSSL versión 16.2.0 y funcionó para mí.
pip install pyOpenSSL==16.2.0
Gracias. Intento instalar la última versión pero no funciona. Talvez yo
debería probar la versión especial
El 11 de noviembre de 2017, 1:04 a. M., "Nguyễn Thanh Tiến" [email protected]
escribió:
Después de ejecutar este comando
solicitudes de instalación de pip urllib3 pyOpenSSL --force --upgradeComo dijo @DeronLee https://github.com/deronlee :
el mensaje de error cambia a
ImportError: al módulo 'pyOpenSSL' le falta la funcionalidad requerida. Tratar
actualizando a v0.14 o más reciente.Instalo pyOpenSSL versión 16.2.0 y funcionó para mí.
pip install pyOpenSSL == 16.2.0-
Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/certbot/certbot/issues/5104#issuecomment-343529478 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/ALj8rHCKhYhwrgCEfvzwVaveagxIVMmtks5s1IIBgaJpZM4PUFnt
.
@ thanhtien522
Gracias. Intento instalar la última versión pero no funciona. Quizás debería probar la versión especial
@DeronLee, ¿puedes decirme?
pip freeze
?@SwartzCr Tengo el mismo problema con @DeronLee
Entonces ejecuto el comando
pip install requests urllib3 pyOpenSSL --force --upgrade
y recibí un error como este:
ImportError: 'pyOpenSSL' module missing required functionality. Try upgrading to v0.14 or newer.
Luego probé lo que @ thanhtien522 mencionó en ejecución
pip install pyOpenSSL==16.2.0
Pero todavía no funciona para mí, todavía tengo el mismo error que me dice que falta pyOpenSSL
.
PRETTY_NAME="CentOS Linux 7 (Core)"
certbot.noarch 0.19.0-1.el7 @epel
yum install certbot-nginx
pip freeze
se muestra a continuaciónacme==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
Parece que, ante todo, necesitamos aumentar la versión de pyOpenSSL de la que dependemos para certbot en centos, esto es lo que obtengo en una instalación nueva:
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
Donde probablemente debería ser una versión superior a 0.14
Lo que podría significar que alguien necesita empaquetarlo para centos: @bmw es @hogarthj la persona con la que debo contactar al respecto?
Sí, hogarthj es nuestro contacto de empaquetado de Red Hat / Fedora, pero responde mejor por correo electrónico. Me complace presentarles en algún momento, pero no creo que se necesiten cambios aquí.
CentOS 7 es una de nuestras plataformas más populares y probamos regularmente en CentOS 7 sin problemas. La mayoría de las personas en este hilo informan tener solicitudes 2.18.x. Las solicitudes 2.6.0 se incluyen en los repositorios de CentOS 7. Si mezcla paquetes de Python de su sistema operativo y pip
, lo pasará mal.
Las personas en CentOS 7 que tienen este problema pueden solucionar el problema deshaciendo los cambios en sus paquetes de Python realizados a través de pip
o usando certbot-auto que soluciona el problema al no depender de los paquetes de Python instalados en su sistema. .
Seguí estas instrucciones (mi versión de urllib3 no funcionó tan bien) y luego certbot se pudo ejecutar ... Con suerte, eso ayuda.
Estoy seguro de que estos se pueden colapsar en menos comandos ...
solicitudes de desinstalación de pip
pip desinstalar urllib3
yum eliminar python-urllib3
yum eliminar solicitudes de python
yum instalar python-urllib3
yum instalar solicitudes de python
yum instalar certbot
Lo probé, utilicé estos comandos y ¡funciona!
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
¿Podemos usar pip más adelante en el futuro después de usar yum?
@sreezree, no debe usar pip para instalar paquetes relacionados con certbot, ya que entrarán en conflicto con los que instala certbot
Ninguno de los métodos mencionados anteriormente funciona para mí, el mensaje de error sigue siendo el mismo. ImportError: No module named 'requests.packages.urllib3'
Me encuentro con el mismo error en CentOS 7.4:
ImportError: ningún módulo llamado 'request.packages.urllib3'
y probé la solución sugerida por smalenfant. Funciona maravillosamente.
Tengo el mismo error.
Encontré que tiene un error al instalar 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
e intento reinstalarlo y luego tengo el mismo error
# 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!
ha fallado, pero muestra final Complete!
, ¿cómo Complete!
?
Entonces encontré a los amigos de Tianchao que dijeron que hay conflicto con la versión de pip.
https://blog.csdn.net/u013614281/article/details/76832818
y desinstalo la versión pip e instalo la versión yum
pip uninstall urllib3
yum install python-urllib3
después de eso recibí otro error
pkg_resources.DistributionNotFound: The 'urllib3<1.23,>=1.21.1' distribution was not found and is required by requests
entonces, que carajo, estoy llorando 😭
después de eso lo intenté
pip uninstall requests
yum remove python-requests
yum install python-requests
yum install certbot
y funciona .....
así que creo que la versión de las solicitudes no coincide con urllib3
así que probó en otra misma máquina env
primero eliminar solicitudes y urllib3
pip uninstall requests
pip uninstall urllib3
yum remove python-urllib3
yum remove python-requests
instalar certbot
esta bien
En realidad, este error se imprime debido a un intento fallido ... captura en el código interno de Python de las solicitudes:
try:
import urllib3
except:
import requests.packages.urllib3
Este problema ocurre cuando no se puede encontrar urllib3, pero también cuando no se puede cargar urllib3 por cualquier motivo.
Puede eliminar el antiguo cerbot y luego intentar instalarlo a través de pip. que debería funcionar.
sudo pip install certbot
Lo probé, utilicé estos comandos y ¡funciona!
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
¡Genial, problema resuelto!
Se recomienda la instalación mediante el
Para aclarar, el método de instalación recomendado en los sistemas basados en RHEL 7 es utilizar EPEL .
Los problemas en este hilo generalmente son causados por una instalación de Python rota causada por paquetes instalados desde pip
entran en conflicto con los instalados desde yum
. Eliminar los paquetes que ha instalado a través de pip
debería resolver el problema.
Comentario más útil
Actualizar. Esto parece haberlo solucionado ...
pip install requests urllib3 pyOpenSSL --force --upgrade