python - mac - ¿Cómo recuperarse de la excepción de congelación de pip?
pip install python 3 (1)
Para instalar pip en las distribuciones de Linux basadas en debian (incluido ubuntu), obtuve buenos resultados al usar easy_install, del paquete python-setuptools
. Entonces eso se ve así:
sudo apt-get install python-setuptools
sudo easy_install pip
Parece que ya tienes easy_install disponible. De todos modos, antes de tratar de instalar pip de esa manera, deberías tratar de limpiar la mayor parte de tu configuración actual como puedas. python-pip
paquete python-pip
, eliminaría cualquier otro rastro de pip actualizado y también eliminaría las huellas del módulo almohada, ya que eso es lo que estaba instalando cuando las cosas empezaron a ir mal. Tal vez algo así como:
sudo apt-get remove --purge python-pip
sudo rm -rf /usr/local/lib/python2.7/{dist,site}-packages/pip*
sudo rm -rf /usr/local/lib/python2.7/{dist,site}-packages/pillow*
Finalmente, cuando usa easy_install o pip para instalar algo que incluye un comando además de un módulo de python importable, el comando se colocará en /usr/local/bin
, por lo que debe asegurarse de que /usr/local/bin
está en la PATH
tu caparazón. El comando pip
estará allí. (Solo usaría easy_install para instalar pip, luego usaré pip para instalar cualquier otro paquete de Python).
EDITAR: por cierto, la "excepción inicial de easy_install pillow" no es una excepción ni un error. Muestra algunas advertencias de compilador no fatales, y algunas características no fueron habilitadas, pero parece haber funcionado. Probablemente fueron acciones posteriores con pip lo que causó un problema para pip.
mucho más tarde editar 2: tuve un "braino" y escribí /usr/local/lib
donde quise decir /usr/local/bin
en el último párrafo original de arriba. Corregido ahora.
Estoy instalando paquetes de Python 2.7 en un sistema ubuntu 14 y me he encontrado con un problema en el que "pip freeze" produce resultados como este ...
$ pip freeze
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 286, in from_dist
assert len(specs) == 1 and specs[0][0] == ''==''
AssertionError
Storing debug log for failure in /home/ubuntu/.pip/pip.log
$ cat /home/ubuntu/.pip/pip.log
------------------------------------------------------------
/usr/bin/pip run on Tue Feb 9 21:00:36 2016
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 286, in from_dist
assert len(specs) == 1 and specs[0][0] == ''==''
AssertionError
No estoy seguro de qué causó este estado de cosas.
Mi sospecha es que una falla del programa easy_install podría haber dañado algo.
He intentado volver a instalar pip.
Esto no tuvo efecto.
Sospecho que tendré que hacer una desinstalación completa y reinstalar todos los paquetes de Python a través de paquetes ubuntu relacionados con pip y python a través de apt-get. paquete por paquete.
Esto llevará bastante tiempo y no estoy seguro de si alcanzará el resultado deseado.
¿Hay un mejor enfoque para este problema?
Estos son los paquetes que instalé antes de ejecutar easy_install:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev protobuf-compiler gfortran libjpeg62 libfreeimage-dev libatlas-base-dev git python-dev python-pip libgoogle-glog-dev libbz2-dev libxml2-dev libxslt-dev libffi-dev libssl-dev libgflags-dev liblmdb-dev python-yaml python-numpy
Aquí está la excepción inicial que recibí de easy_install:
$ sudo easy_install pillow
Searching for pillow
Reading https://pypi.python.org/simple/pillow/
Best match: Pillow 3.1.1
Downloading https://pypi.python.org/packages/source/P/Pillow/Pillow-3.1.1.zip#md5=3868f54fd164e65f95fbcb32f62940ae
Processing Pillow-3.1.1.zip
Writing /tmp/easy_install-Bvu_2f/Pillow-3.1.1/setup.cfg
Running Pillow-3.1.1/setup.py -q bdist_egg --dist-dir /tmp/easy_install-Bvu_2f/Pillow-3.1.1/egg-dist-tmp-lMm5Tk
warning: no previously-included files found matching ''.editorconfig''
Building using 4 processes
_imaging.c: In function ‘getink’:
_imaging.c:474:9: warning: ‘r’ may be used uninitialized in this function [-Wmaybe-uninitialized]
int r, g, b, a;
^
libImaging/Resample.c:87:45: warning: always_inline function might not be inlinable [-Wattributes]
static float __attribute__((always_inline)) i2f(int v) {
^
Building using 4 processes
Building using 4 processes
Building using 4 processes
--------------------------------------------------------------------
PIL SETUP SUMMARY
--------------------------------------------------------------------
version Pillow 3.1.1
platform linux2 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
*** OPENJPEG (JPEG2000) support not available
--- ZLIB (PNG/ZIP) support available
--- LIBTIFF support available
--- FREETYPE2 support available
*** LITTLECMS2 support not available
*** WEBP support not available
*** WEBPMUX support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
Adding Pillow 3.1.1 to easy-install.pth file
Installing pildriver.py script to /usr/local/bin
Installing viewer.py script to /usr/local/bin
Installing gifmaker.py script to /usr/local/bin
Installing pilconvert.py script to /usr/local/bin
Installing pilfont.py script to /usr/local/bin
Installing pilfile.py script to /usr/local/bin
Installing createfontdatachunk.py script to /usr/local/bin
Installing explode.py script to /usr/local/bin
Installing pilprint.py script to /usr/local/bin
Installing player.py script to /usr/local/bin
Installing thresholder.py script to /usr/local/bin
Installing painter.py script to /usr/local/bin
Installing enhancer.py script to /usr/local/bin
Installed /usr/local/lib/python2.7/dist-packages/Pillow-3.1.1-py2.7-linux-x86_64.egg
Processing dependencies for pillow
Finished processing dependencies for pillow
Exception in thread Thread-1:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.7/multiprocessing/pool.py", line 330, in _handle_workers
debug(''worker handler exiting'')
TypeError: ''NoneType'' object is not callable
Exception Exception in thread Thread-2:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/usr/lib/python2.7/multiprocessing/pool.py", line 357, in _handle_tasks
debug(''task handler got sentinel'')
TypeError: ''NoneType'' object is not callable
TypeError: TypeError("''NoneType'' object does not support item deletion",) in <Finalize object, dead> ignored
ubuntu@ip-10-234-31-217:~/nvidia_installers/cuda$
Posteriormente pude instalar la almohada a través de pip.
Me he dado cuenta de que parece haber 2 paquetes diferentes de dist en mi camino.
Eso parece ser un poco extraño.
>>> import sys
>>> import pprint
>>> pp = pprint.PrettyPrinter(indent=4)
>>> pp.pprint(sys.path)
[ '''',
''/usr/lib/python2.7'',
''/usr/lib/python2.7/plat-x86_64-linux-gnu'',
''/usr/lib/python2.7/lib-tk'',
''/usr/lib/python2.7/lib-old'',
''/usr/lib/python2.7/lib-dynload'',
''/usr/local/lib/python2.7/dist-packages'',
''/usr/lib/python2.7/dist-packages'']
Este es el procedimiento completo que estoy siguiendo:
Instale Caffe en EC2 desde cero
Entiendo que la versión de pip que admite apt-get es muy antigua.
He intentado actualizar pip.
Obtengo errores "Propiedad de SO".
No estoy seguro de cómo diferir del uso de apt-get aquí y las consecuencias de hacerlo.
$ pip install -U pip
Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-8.0.2-py2.py3-none-any.whl#md5=2056f553d5b593d3a970296f229c1b79
Downloading pip-8.0.2-py2.py3-none-any.whl (1.2MB): 1.2MB downloaded
Installing collected packages: pip
Found existing installation: pip 1.5.4
Not uninstalling pip at /usr/lib/python2.7/dist-packages, owned by OS
Can''t roll back pip; was not uninstalled
Cleaning up...
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
self.move_wheel_files(self.source_dir, root=root)
File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
pycompile=self.pycompile,
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
clobber(source, lib_dir, True)
File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
os.makedirs(destsubdir)
File "/usr/lib/python2.7/os.py", line 157, in makedirs
mkdir(name, mode)
OSError: [Errno 13] Permission denied: ''/usr/local/lib/python2.7/dist-packages/pip-8.0.2.dist-info''
Storing debug log for failure in /home/ubuntu/.pip/pip.log
$ sudo pip install -U pip
Downloading/unpacking pip from https://pypi.python.org/packages/py2.py3/p/pip/pip-8.0.2-py2.py3-none-any.whl#md5=2056f553d5b593d3a970296f229c1b79
Downloading pip-8.0.2-py2.py3-none-any.whl (1.2MB): 1.2MB downloaded
Installing collected packages: pip
Found existing installation: pip 1.5.4
Not uninstalling pip at /usr/lib/python2.7/dist-packages, owned by OS
Successfully installed pip
Cleaning up...
$ pip --version
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)
ubuntu@ip-10-234-31-217:~$ pip freeze
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 286, in from_dist
assert len(specs) == 1 and specs[0][0] == ''==''
AssertionError
Storing debug log for failure in /home/ubuntu/.pip/pip.log
Otro método de actualización de pip también falló:
$ sudo pip install --upgrade pip
The directory ''/home/ubuntu/.cache/pip/http'' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo''s -H flag.
The directory ''/home/ubuntu/.cache/pip'' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo''s -H flag.
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
SNIMissingWarning
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
Requirement already up-to-date: pip in /usr/local/lib/python2.7/dist-packages
/usr/local/lib/python2.7/dist-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
InsecurePlatformWarning
$ pip freeze
Exception:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
status = self.run(options, args)
File "/usr/lib/python2.7/dist-packages/pip/commands/freeze.py", line 74, in run
req = pip.FrozenRequirement.from_dist(dist, dependency_links, find_tags=find_tags)
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 286, in from_dist
assert len(specs) == 1 and specs[0][0] == ''==''
AssertionError
Storing debug log for failure in /home/ubuntu/.pip/pip.log
$ ls -lF /home/ubuntu/.cache/pip/http
ls: cannot access /home/ubuntu/.cache/pip/http: No such file or directory
$ ls -lF /home/ubuntu/.cache
total 0
-rw-r--r-- 1 ubuntu ubuntu 0 Feb 6 00:39 motd.legal-displayed