2012-06-14 8 views
11

Il mio scenario è che ho due laptop con fresh installation di windows. Ora li uso entrambi per la programmazione.Trasferimento dell'impostazione Python su PC diversi

Quindi, supponiamo di installare vari moduli/pacchetti python in uno dei laptop. Quindi c'è un modo per fare in modo che io possa clone questa configurazione Python completa sul mio altro portatile. La ragione di ciò è che la mia connessione internet al momento è molto lenta, quindi non voglio scaricare lo stesso modulo o i pacchetti due volte e poi installarli di nuovo.

So che posso scaricare i moduli nel file zip, trasferirli su altro e che eseguire python setup.py install ma ho intenzione di utilizzare pip per installare i moduli.

In ogni caso, mi chiedevo se è possibile eseguire cloning di installazione python.

risposta

16

Ecco un suggerimento completamente diverso, questo è consigliato se si desidera sincronizzare i pacchetti tra i due PC e non clonare tutto solo una volta.

Funziona solo se si installano pacchetti con pip. Non funziona per pacchetti che non sono installabili/installati con pip.

  1. Impostare la cache di pip su una penna/USB storage di rete che è accessibile da entrambi i PC (vedi https://stackoverflow.com/a/4806458/851737 per le istruzioni)
  2. Congelare il vostro ambiente attuale pacchetto dal PC di origine in un file requisiti:

    $ pip freeze > req.txt

  3. copiare il file req al PC di destinazione e installare i pacchetti:

    $ pip install -r req.txt

Se si mette la req.txt sotto un VCS è possibile automatizzare e sincronizzare questo processo molto agevolmente.

+0

anche se non risolve questo problema, ti ho dato un upvote per una bella soluzione pulita che altre persone potrebbero trovare utile! –

+0

@kigurai Perché no? Ho letto la sua domanda che sta iniziando da zero (su entrambi i PC), quindi installerà tutto due volte e scaricherà tutto solo una volta con questo approccio. – schlamar

+0

Suppongo di averlo letto come "tenerlo sincronizzato senza usare la connessione di rete" e non "clonare l'ambiente una volta". –

4

Se si utilizza uno virtualenv (http://www.virtualenv.org), dovrebbe essere possibile memorizzarlo su una penna USB e portarlo con sé.

+0

Bello non lo sapevo. – RanRag

+1

Hai mai provato questo? La documentazione dice di virtualenv rilocabile: 'Nota: questa opzione è in qualche modo sperimentale e probabilmente ci sono avvertenze che non sono state ancora identificate. Anche questo non funziona attualmente su Windows. – schlamar

+0

Fallisce definitivamente se la lettera di unità del bastone cambia (cosa che potrebbe sempre accadere), quindi questa non è una soluzione pulita. – schlamar

7

Se si dispone della stessa versione Python su entrambi i PC, è sufficiente copiare il contenuto di Lib\site-packages e Scripts in quello nuovo. Ma nota che deve essere la stessa versione minore (ad esempio 2.6 non funziona con 2.7).

+0

Sì, ho la stessa versione minore di Python – RanRag

+0

@RanRag In molti casi probabilmente la versione minore non ha nemmeno bisogno di essere la stessa. Soprattutto quando il computer di origine ha una versione precedente rispetto al computer di destinazione. Quando Python viene aggiornato, i pacchetti di solito non hanno bisogno di essere aggiornati. Ci possono essere alcuni casi rari quando durante la copia da sorgente con Python più recente il pacchetto non può funzionare in target con Python un po 'più vecchio. –

0

Stavo aggiornando Python 2.7.3 -> 2.7.9 sul mio PC Windows 7. Normalmente ciò andrebbe bene, tuttavia la nuova installazione è entrata accidentalmente nella C: invece di dove si trovava la mia versione precedente di python, nell'unità D :. Per farlo funzionare era semplicemente una questione di copiare la nuova installazione direttamente sopra il vecchio. Ha funzionato come un fascino e tutti i miei vecchi moduli che avevo installato erano presenti.

Problemi correlati