Python actualizado; ¿Tengo que reinstalar todos los paquetes del sitio manualmente?

He actualizado mi distro de Linux recientemente. Python 3.5 fue reemplazado por Python 3.6.

Todos los paquetes de sitio que he instalado con pip3 todavía están en el directorio pip3 y Python no los encuentra allí ahora, porque se ve en .../python3.6/site-packages obviamente .

Veo el contenido del directorio y puedo instalarlos manualmente de nuevo, pero eso no me parece la forma correcta de hacerlo. Podría mover los contenidos al nuevo directorio, pero nuevamente, esto me parece incorrecto.

¿Cómo se supone que debo manejarlo correctamente?

¿Debería haber preparado una lista de pip3 freeze antes de la actualización?

Intenté buscar, pero las palabras clave probablemente son demasiado generales y obtuvieron muchas respuestas no relacionadas.

Python 3.5 fue reemplazado por Python 3.6. Pero todavía tienes la opción de copia de seguridad de usar Python 3.5.

Si desea utilizar python 3.6, tendrá que volver a instalar todos los paquetes pip para python 3.6. Y tiene sentido.

Digamos que estabas cambiando de 2.7 a 3.5. Desea conservar ambos entornos por separado. Por lo tanto, el entorno 3.6 es diferente de 3.5.

Una forma rápida de hacer esto sería pip freeze para 3.5 y luego instalar esas dependencias para 3.6.

 pip freeze > reqs.txt 

mejorar

 pip install -r reqs.txt 

Como ya no tiene esta opción, primero intente y enumere todos los paquetes en su python3.5

para eso puedes instalar pip3.5 como lo responde @kabanus.

 sudo apt-get install python3=3.5.1* sudo python3.5 easy_install.py pip 

También se recomienda utilizar el entorno virtual por proyecto para que pueda mantener entornos separados para cada uno de ellos.

Esto habría simplificado las cosas para que usted pueda reinstalar. Echa un vistazo a la descripción . Usando freeze podrías haber hecho algo como:

 $ env1/bin/pip3 freeze > requirements.txt $ env2/bin/pip3 install -r requirements.txt 

En general, el método recomendado es que use un virtualenv para los paquetes del sitio, de modo que no ensucie sus áreas de instalación, pero TBH nunca me rompió algo. Otra opción es verificar si la distribución de Linux tiene el paquete disponible para su recuperación adecuada, como en:

 sudo apt-get install python3- 

Esto es lo que prefiero, y podría haber sido actualizado con la distribución. En cuanto a qué hacer ahora, si realmente no desea volver a instalar todo correctamente, podría intentar cp /usr/lib/python3.5/site-packages/* /usr/lib/python3.6/site-packages Las diferencias entre las versiones no son tan grandes, por lo que creo que la mayoría de los paquetes funcionarán de forma inmediata. Puede que tenga que sed para reemplazar python3.5 con python3.6 en todos los archivos allí, sin embargo. Olvidé borrar todos los archivos pyc si haces esto.

Los módulos de Python son lo suficientemente independientes como para que si algo falla se puede manejar por paquete, y los paquetes de sitio son completamente independientes, por lo que siempre puede eliminar todo y volver a instalar.

Una nota final: puede intentar instalar pyton3.5 / pip3.5 para su linux y luego congelarlo. Si no hay ningún paquete, puede instalarlo manualmente ( whl o whl ) o comstackrlo de forma independiente y configurar la ruta del sitio correctamente. Si desea mantener las cosas en un directorio de paquete de sitio global o migrar a virtualenv esta puede ser la opción más segura.