2012-06-14 29 views
11

Mi caso es que tengo dos computadoras portátiles con fresh installation de windows. Ahora los uso para programación.Transferir la configuración de Python a través de diferentes PC

Supongamos que instalo varios módulos/paquetes de Python en uno de los portátiles. Entonces, ¿hay alguna manera de que pueda clone esta configuración completa de Python en mi otra computadora portátil? La razón de esto es que mi conexión a Internet actualmente es muy lenta, así que no quiero descargar el mismo módulo o paquetes dos veces y luego instalarlos de nuevo.

Sé que puedo descargar los módulos en un archivo zip, transferirlos a otro y ejecutar python setup.py install pero voy a utilizar pip para instalar módulos.

De todos modos, me preguntaba si cloning de la configuración de python es posible.

Respuesta

16

Aquí hay una sugerencia completamente diferente, esto se recomienda si quiere sincronizar los paquetes entre las dos PC y no clonar todo solo una vez.

Solo funciona si instala paquetes con pip. No funciona para paquetes que no son instalables/instalados con pip.

  1. Configure el caché PIP a un palo/USB de almacenamiento en red que es accesible desde ambas PC (ver https://stackoverflow.com/a/4806458/851737 para obtener instrucciones)
  2. congelar su entorno actual paquete desde el PC de origen en un archivo de requisitos:

    $ pip freeze > req.txt

  3. copiar el archivo req al PC de destino e instalar los paquetes:

    $ pip install -r req.txt

Si ponemos la req.txt bajo un VCS puede automatizar y sincronizar este proceso sin problemas.

+0

incluso si no resuelve este problema, ¡te di un voto positivo para una solución limpia agradable que otras personas puedan encontrarle útil! –

+0

@kigurai ¿Por qué no? Leí su pregunta de que está comenzando desde cero (en ambas PC), por lo que va a instalar todo dos veces y descargará todo solo una vez con este enfoque. – schlamar

+0

Supongo que lo leí como "manteniéndolo sincronizado sin usar la conexión de red" y no "cloné el entorno una vez". –

4

Si usa un virtualenv (http://www.virtualenv.org), debe poder almacenarlo en una memoria USB y llevarlo con usted.

+0

Bueno, no sabía de eso. – RanRag

+1

¿Alguna vez ha probado esto? La documentación dice acerca de virtualenv reubicables: 'Nota: esta opción es algo experimental, y probablemente hay advertencias que aún no se han identificado. Además, esto no funciona actualmente en Windows. – schlamar

+0

Sin duda falla si cambia la letra de la unidad de disco (lo que siempre podría suceder), por lo que esta no es una solución limpia. – schlamar

7

Si tiene la misma versión de Python en ambas PC, puede simplemente copiar el contenido de Lib\site-packages y Scripts en la nueva. Pero tenga en cuenta que debe ser la misma versión menor (por ejemplo, 2.6 no funciona con 2.7).

+0

Sí, tengo la misma versión menor de Python – RanRag

+0

@RanRag En muchos casos, probablemente la versión menor no necesita ser la misma. Especialmente, cuando la computadora fuente tiene una versión más antigua que la computadora objetivo. Cuando Python se actualiza, los paquetes generalmente no necesitan actualización. Puede haber algunos casos raros cuando al copiar de la fuente con Python más reciente, el paquete no puede funcionar en el destino con Python un poco más antiguo. –

0

Estaba actualizando Python 2.7.3 -> 2.7.9 en mi PC con Windows 7. Normalmente esto estaría bien, sin embargo, la nueva instalación fue accidentalmente a la C: en lugar de mi versión anterior de python, en la unidad D :. Conseguir que funcione fue simplemente una cuestión de copiar la nueva instalación directamente sobre la anterior. Funcionó como un amuleto y todos mis viejos módulos que había instalado estaban presentes.

Cuestiones relacionadas