anaconda conda

anaconda - ¿De qué manera el uso de conda para instalar un paquete cambia mi versión de python y elimina conda?



(1)

Porque

Cambiar las versiones de Python sin actualizar el paquete conda rompe a Conda. . El cambio de versión de Python (2.7.14 -> 3.6.8) creó una situación en la que el nuevo python tiene un nuevo site-packages que ya no contiene un paquete conda , mientras que si solo actualizas en 2.7.x, esto no sería un problema.

Conda incluye tanto un conjunto de binarios (por ejemplo, lo que invoca cuando escribe conda en un shell) como un paquete de Python con el mismo nombre. El paquete Python es necesario para que Conda funcione como un todo y se carga cuando intentas usar conda .

Es problemático que muchos paquetes en Anaconda parezcan estar provocando cambios en la versión de Python, pero posteriormente no conda una actualización del paquete conda . Esto suena como algo que el resolvedor de dependencias está ignorando, es decir, el comportamiento predeterminado debe ser proteger la integridad del entorno base donde vive conda .

Tratando de recuperar

Una idea general para recuperarse de esto es descargar manualmente el conda para el paquete conda correspondiente a su nueva versión de Python en la base env y tratar de instalar manualmente el paquete faltante en el paquete de site-packages . Para tu caso esto iría algo así como, descargar

wget https://anaconda.org/anaconda/conda/4.6.8/download/linux-64/conda-4.6.8-py37_0.tar.bz2

y desempaquetarlo. Los paquetes que desea instalar estarán en el directorio lib/python3.7/site-packages . Si tienes suerte, simplemente copiar estos en

/home/me/anaconda2/lib/python3.7/site-packages/

podría hacer el truco De lo contrario, es posible que deba invocar algún tipo de procedimiento de instalación. Sin un sistema para probar esto, esto es todo lo que puedo conseguirte. Si lo hace funcionar, informe de nuevo para que podamos actualizarlo para que sea una respuesta autorizada.

Último recurso

Desafortunadamente, no he visto ningún informe de usuarios que pueda recuperarse de esta falta de reinstalación completa o de instalar una nueva versión de Miniconda en un directorio diferente.

Prevenciones

Evitar la rotura a través de una mejor práctica

Primero, solo una recomendación general ( valorada ): aproveche los envs virtuales más . Esto no está resolviendo el problema directamente, pero lo ayudará a tener un flujo de trabajo que es significativamente menos propenso a enfrentar tales dificultades. No debiste haber aceptado un cambio tan grande en primer lugar, no en base . Personalmente, rara vez instalo cosas fuera de la infraestructura (emacs, cosas relacionadas con jupyter, conda, etc.). 1 Los paquetes de software van en envs específicos del proyecto o al menos de tipo de desarrollo.

Por ejemplo, si estuviera haciendo la instalación mostrada, habría hecho un nuevo env para ella

conda create -n tf36 anaconda::tensorflow-gpu python=3.6

o cualquier versión de Python en la que realmente desees trabajar.

Solución directa: Fijación

Conda admite la fijación de paquetes, y esta es la forma más directa de asegurarse de no volver a arruinar su instalación básica de nuevo mediante la transición de Python 2 a 3. A saber, en la carpeta conda-meta env cree un archivo, pinned y agregue la línea

python 2.7.*

Tenga en cuenta que algunos usuarios han informado problemas similares para las transiciones 3.6 -> 3.7, por lo que creo que es necesario incluir la versión secundaria aquí. Consulte la documentación sobre fijación .

[1] Tenga en cuenta que uso Miniconda, no el instalador de Anaconda, así que tengo más control sobre la base desde el principio.

Yo había estado usando Anaconda con python 2.7

$ python Python 2.7.14 |Anaconda custom (64-bit)| (default, Dec 7 2017, 17:05:42) [GCC 7.2.0] on linux2 Type "help", "copyright", "credits" or "license" for more information.

Cuando decidí instalar tensorflow (ya que por alguna razón tuve la versión no gpu)

El comando que utilicé fue:

$ conda install -c anaconda tensorflow-gpu

Sin embargo, una vez hecho esto (detalle en la salida de este cmd a seguir), ya no tenía conda:

$ conda install -c conda-forge keras Traceback (most recent call last): File "/home/me/anaconda2/bin/conda", line 12, in <module> from conda.cli import main ModuleNotFoundError: No module named ''conda''

(Nota: yo también ya no tenía Keras) y ahora estaba ejecutando Python 3.7 (!?):

$ python Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34) [GCC 7.3.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>>

¿Que pasó? ¿Cómo puedo evitar que vuelva a suceder? Esto sucedió una vez antes y terminé eliminando todos mis archivos de anaconda, luego reinstalándolos. No quiero hacer de eso un hábito.

La salida de mi conda install fue:

$ conda install -c anaconda tensorflow-gpu Collecting package metadata: done Solving environment: done ## Package Plan ## environment location: /home/me/anaconda2 added / updated specs: - tensorflow-gpu The following packages will be downloaded: package | build ---------------------------|----------------- _tflow_190_select-0.0.1 | gpu 2 KB anaconda absl-py-0.7.0 | py36_0 156 KB anaconda astor-0.7.1 | py36_0 43 KB anaconda c-ares-1.15.0 | h7b6447c_1 98 KB anaconda ca-certificates-2018.12.5 | 0 123 KB anaconda certifi-2018.11.29 | py36_0 146 KB anaconda cudatoolkit-9.0 | h13b8566_0 340.4 MB anaconda cudnn-7.1.2 | cuda9.0_0 367.8 MB anaconda cupti-9.0.176 | 0 1.6 MB anaconda curl-7.63.0 | hbc83047_1000 145 KB anaconda gast-0.2.2 | py36_0 138 KB anaconda git-2.11.1 | 0 9.5 MB anaconda grpcio-1.16.1 | py36hf8bcb03_1 1.1 MB anaconda krb5-1.16.1 | h173b8e3_7 1.4 MB anaconda libcurl-7.63.0 | h20c2e04_1000 550 KB anaconda libedit-3.1.20181209 | hc058e9b_0 188 KB anaconda libssh2-1.8.0 | h1ba5d50_4 233 KB anaconda markdown-3.0.1 | py36_0 107 KB anaconda mkl_fft-1.0.10 | py36ha843d7b_0 170 KB anaconda mkl_random-1.0.2 | py36hd81dba3_0 407 KB anaconda ncurses-6.1 | he6710b0_1 958 KB anaconda numpy-1.15.4 | py36h7e9f1db_0 47 KB anaconda numpy-base-1.15.4 | py36hde5b4d6_0 4.3 MB anaconda openssl-1.1.1 | h7b6447c_0 5.0 MB anaconda pip-18.1 | py36_0 1.8 MB anaconda protobuf-3.5.2 | py36hf484d3e_1 610 KB anaconda python-3.6.8 | h0371630_0 34.4 MB anaconda qt-4.8.7 | 2 34.1 MB anaconda setuptools-40.6.3 | py36_0 625 KB anaconda six-1.12.0 | py36_0 22 KB anaconda sqlite-3.26.0 | h7b6447c_0 1.9 MB anaconda tensorboard-1.9.0 | py36hf484d3e_0 3.3 MB anaconda tensorflow-1.9.0 |gpu_py36h02c5d5e_1 3 KB anaconda tensorflow-base-1.9.0 |gpu_py36h6ecc378_0 170.8 MB anaconda tensorflow-gpu-1.9.0 | hf154084_0 2 KB anaconda termcolor-1.1.0 | py36_1 7 KB anaconda tk-8.6.8 | hbc83047_0 3.1 MB anaconda werkzeug-0.14.1 | py36_0 423 KB anaconda wheel-0.32.3 | py36_0 35 KB anaconda ------------------------------------------------------------ Total: 985.7 MB The following NEW packages will be INSTALLED: _tflow_190_select anaconda/linux-64::_tflow_190_select-0.0.1-gpu c-ares anaconda/linux-64::c-ares-1.15.0-h7b6447c_1 cudatoolkit anaconda/linux-64::cudatoolkit-9.0-h13b8566_0 cudnn anaconda/linux-64::cudnn-7.1.2-cuda9.0_0 cupti anaconda/linux-64::cupti-9.0.176-0 krb5 anaconda/linux-64::krb5-1.16.1-h173b8e3_7 pip anaconda/linux-64::pip-18.1-py36_0 tensorflow-gpu anaconda/linux-64::tensorflow-gpu-1.9.0-hf154084_0 The following packages will be UPDATED: absl-py conda-forge/noarch::absl-py-0.1.10-py~ --> anaconda/linux-64::absl-py-0.7.0-py36_0 ca-certificates conda-forge::ca-certificates-2018.11.~ --> anaconda::ca-certificates-2018.12.5-0 curl pkgs/main::curl-7.60.0-h84994c4_0 --> anaconda::curl-7.63.0-hbc83047_1000 gast 0.2.0-py27_0 --> 0.2.2-py36_0 grpcio pkgs/main::grpcio-1.12.1-py27hdbcaa40~ --> anaconda::grpcio-1.16.1-py36hf8bcb03_1 libcurl pkgs/main::libcurl-7.60.0-h1ad7b7a_0 --> anaconda::libcurl-7.63.0-h20c2e04_1000 libedit pkgs/main::libedit-3.1-heed3624_0 --> anaconda::libedit-3.1.20181209-hc058e9b_0 markdown conda-forge/noarch::markdown-2.6.11-p~ --> anaconda/linux-64::markdown-3.0.1-py36_0 mkl_fft pkgs/main::mkl_fft-1.0.6-py27hd81dba3~ --> anaconda::mkl_fft-1.0.10-py36ha843d7b_0 ncurses pkgs/main::ncurses-6.0-h9df7e31_2 --> anaconda::ncurses-6.1-he6710b0_1 openssl conda-forge::openssl-1.0.2p-h14c3975_~ --> anaconda::openssl-1.1.1-h7b6447c_0 protobuf conda-forge::protobuf-3.5.2-py27hd28b~ --> anaconda::protobuf-3.5.2-py36hf484d3e_1 python pkgs/main::python-2.7.14-h1571d57_29 --> anaconda::python-3.6.8-h0371630_0 setuptools pkgs/main::setuptools-38.4.0-py27_0 --> anaconda::setuptools-40.6.3-py36_0 six pkgs/main::six-1.11.0-py27h5f960f1_1 --> anaconda::six-1.12.0-py36_0 sqlite pkgs/main::sqlite-3.23.1-he433501_0 --> anaconda::sqlite-3.26.0-h7b6447c_0 tensorflow conda-forge::tensorflow-1.3.0-py27_0 --> anaconda::tensorflow-1.9.0-gpu_py36h02c5d5e_1 tk pkgs/main::tk-8.6.7-hc745277_3 --> anaconda::tk-8.6.8-hbc83047_0 wheel pkgs/main::wheel-0.30.0-py27h2bc6bb2_1 --> anaconda::wheel-0.32.3-py36_0 The following packages will be SUPERSEDED by a higher-priority channel: certifi conda-forge::certifi-2018.11.29-py27_~ --> anaconda::certifi-2018.11.29-py36_0 git pkgs/main::git-2.17.0-pl526hb75a9fb_0 --> anaconda::git-2.11.1-0 libssh2 pkgs/main::libssh2-1.8.0-h9cfc8f7_4 --> anaconda::libssh2-1.8.0-h1ba5d50_4 mkl_random pkgs/main::mkl_random-1.0.2-py27hd81d~ --> anaconda::mkl_random-1.0.2-py36hd81dba3_0 numpy pkgs/main::numpy-1.15.4-py27h7e9f1db_0 --> anaconda::numpy-1.15.4-py36h7e9f1db_0 numpy-base pkgs/main::numpy-base-1.15.4-py27hde5~ --> anaconda::numpy-base-1.15.4-py36hde5b4d6_0 qt pkgs/main::qt-5.9.4-h4e5bff0_0 --> anaconda::qt-4.8.7-2 tensorflow-base pkgs/main::tensorflow-base-1.9.0-eige~ --> anaconda::tensorflow-base-1.9.0-gpu_py36h6ecc378_0 werkzeug pkgs/main::werkzeug-0.14.1-py27_0 --> anaconda::werkzeug-0.14.1-py36_0 The following packages will be DOWNGRADED: astor 0.7.1-py27_0 --> 0.7.1-py36_0 tensorboard 1.10.0-py27hf484d3e_0 --> 1.9.0-py36hf484d3e_0 termcolor 1.1.0-py27_1 --> 1.1.0-py36_1 Proceed ([y]/n)? y Downloading and Extracting Packages tensorflow-gpu-1.9.0 | 2 KB | ########################################################################################################################################## | 100% absl-py-0.7.0 | 156 KB | ########################################################################################################################################## | 100% six-1.12.0 | 22 KB | ########################################################################################################################################## | 100% git-2.11.1 | 9.5 MB | ########################################################################################################################################## | 100% _tflow_190_select-0. | 2 KB | ########################################################################################################################################## | 100% setuptools-40.6.3 | 625 KB | ########################################################################################################################################## | 100% c-ares-1.15.0 | 98 KB | ########################################################################################################################################## | 100% cupti-9.0.176 | 1.6 MB | ########################################################################################################################################## | 100% libssh2-1.8.0 | 233 KB | ########################################################################################################################################## | 100% gast-0.2.2 | 138 KB | ########################################################################################################################################## | 100% ncurses-6.1 | 958 KB | ########################################################################################################################################## | 100% protobuf-3.5.2 | 610 KB | ########################################################################################################################################## | 100% tensorflow-base-1.9. | 170.8 MB | ########################################################################################################################################## | 100% ca-certificates-2018 | 123 KB | ########################################################################################################################################## | 100% python-3.6.8 | 34.4 MB | ########################################################################################################################################## | 100% cudatoolkit-9.0 | 340.4 MB | ########################################################################################################################################## | 100% qt-4.8.7 | 34.1 MB | ########################################################################################################################################## | 100% sqlite-3.26.0 | 1.9 MB | ########################################################################################################################################## | 100% astor-0.7.1 | 43 KB | ########################################################################################################################################## | 100% tensorboard-1.9.0 | 3.3 MB | ########################################################################################################################################## | 100% mkl_fft-1.0.10 | 170 KB | ########################################################################################################################################## | 100% mkl_random-1.0.2 | 407 KB | ########################################################################################################################################## | 100% certifi-2018.11.29 | 146 KB | ########################################################################################################################################## | 100% wheel-0.32.3 | 35 KB | ########################################################################################################################################## | 100% numpy-base-1.15.4 | 4.3 MB | ########################################################################################################################################## | 100% numpy-1.15.4 | 47 KB | ########################################################################################################################################## | 100% curl-7.63.0 | 145 KB | ########################################################################################################################################## | 100% openssl-1.1.1 | 5.0 MB | ########################################################################################################################################## | 100% tk-8.6.8 | 3.1 MB | ########################################################################################################################################## | 100% libedit-3.1.20181209 | 188 KB | ########################################################################################################################################## | 100% markdown-3.0.1 | 107 KB | ########################################################################################################################################## | 100% werkzeug-0.14.1 | 423 KB | ########################################################################################################################################## | 100% krb5-1.16.1 | 1.4 MB | ########################################################################################################################################## | 100% termcolor-1.1.0 | 7 KB | ########################################################################################################################################## | 100% pip-18.1 | 1.8 MB | ########################################################################################################################################## | 100% libcurl-7.63.0 | 550 KB | ########################################################################################################################################## | 100% tensorflow-1.9.0 | 3 KB | ########################################################################################################################################## | 100% grpcio-1.16.1 | 1.1 MB | ########################################################################################################################################## | 100% cudnn-7.1.2 | 367.8 MB | ########################################################################################################################################## | 100% Preparing transaction: done Verifying transaction: done Executing transaction: done

(OK, veo el cambio a Python 3.7 ahora, pero aún así es algo desagradable que hay que tener cuidado. ¿Hay alguna forma de forzarlo a dejar mi versión de Python solo?)