Come installare manualmente un modulo pypi senza pip / easy_install?


96

Voglio usare il modulo gntp per visualizzare notifiche simili a tostapane per un software C / C ++. Voglio impacchettare tutte le dipendenze affinché il software sia autoeseguibile su un altro computer.

Il modulo gntp è disponibile solo tramite il pip installer, che non può essere utilizzato (il computer su cui è in esecuzione il soft non ha alcuna connessione internet): come posso installarlo dai sorgenti?

Preferirei non forzare l'utente a installare easy_install / pip e aggiungere manualmente il percorso pip a% PATH.

PS: sto usando Python 2.7 su una macchina Windows.


4
Forse con python setup.py install?
Nicolas

Risposte:


153
  1. Scarica il pacchetto
  2. decomprimerlo se è zippato
  3. cd nella directory contenente setup.py
  4. Se sono presenti istruzioni di installazione contenute nella documentazione qui contenuta, leggere e seguire le istruzioni ALTRIMENTI
  5. digitare python setup.py install

Potresti aver bisogno dei privilegi di amministratore per il passaggio 5. Ciò che fai qui dipende dal tuo sistema operativo. Ad esempio in Ubuntu direstisudo python setup.py install

EDIT - grazie a kwatford (vedi primo commento)

Per aggirare la necessità di privilegi di amministratore durante il passaggio 5 sopra, potresti essere in grado di utilizzare il flag --user. In questo modo è possibile installare il pacchetto solo per l'utente corrente.

I documenti dicono:

I file verranno installati nelle sottodirectory di site.USER_BASE (scritto di seguito come base utente). Questo schema installa moduli Python puri e moduli di estensione nella stessa posizione (noto anche come site.USER_SITE). Di seguito sono riportati i valori per UNIX, incluso Mac OS X:

Maggiori dettagli possono essere trovati qui: http://docs.python.org/2.7/install/index.html


8
pip / easy_install / setup.py di solito accetta un --userflag per installare il pacchetto solo per l'utente corrente, generalmente aggirando la necessità dell'accesso amministratore.
kwatford

3
Per qualche motivo vedo questo: L' ImportError: No module named 'setuptools'ho scoperto qui: pypi.python.org/pypi/setuptools/1.1.6 Sebbene l'installazione mi abbia dato errori di eccezione, ora il modulo websocket non funziona affatto, penso che darò su Python 3.3 su Windows a questo punto.
SSH questo

2
@SSHThis: ho gli stessi risultati con un pacchetto di cui sto cercando di far funzionare l'installazione. Aumentare la verbosità dà "Perché questa distribuzione è stata installata --multi-versione [...]" che è sia falsa (solo una versione di python installata qui) che inutile (usando il documentato "python -m easy_install [...] "non è affatto d'aiuto), sono con te - Python è inutilizzabile.
Eric Towers,

1
Immagino che di pip install target-packagesolito installi / aggiorni automaticamente altri pacchetti da cui dipende il pacchetto di destinazione. Questo accade in caso di approccio setup.py? Oppure zip del pacchetto contiene anche tutte le dipendenze? E vuoi dire che dovremmo scaricare ruote in pitone invece di zip? Come questi per numpy? Se non dove trovare le zip (ad esempio per numpy)? (Sto chiedendo tutto questo perché sono costretto a lavorare dietro proxy aziendale dove devo lottare per ogni download: '()
Mahesha999

3
non puoi davvero scaricare pacchetti mentre sei offline ... Se vuoi scaricarli mentre sei fuori dalla tua stupida rete di lavoro, probabilmente farei quanto segue: 1. Crea un virtualenv. 2. python setup.py installo pip installtutte le cose di cui avrai bisogno. 3. eseguire pip freeze per ottenere un elenco di tutti i pacchetti e tutte le versioni. Puoi memorizzarlo in un file (tradizionalmente chiamato requirements.txt ". Quindi, se desideri scaricare i pacchetti in modo da poterli copiare su macchine diverse, puoi utilizzare pip download [options] -r <requirements file>. Questo non è il modo più efficiente. Ma facile
Sheena

5

Per spiegare ulteriormente la risposta di Sheena , avevo bisogno di installare gli strumenti di configurazione come dipendenza di un altro strumento, ad esempio more-itertools .

Scarica

Fare clic sul Clone or downloadpulsante e scegliere il metodo. Li ho inseriti in una dev/py/libsdirectory nella directory home dell'utente. Non importa dove vengono salvati, perché non verranno installati lì.

Installazione degli strumenti di configurazione

Sarà necessario eseguire quanto segue all'interno della directory setup-tools .

python bootstrap.py
python setup.py install

Installazione delle dipendenze generali

Ora puoi navigare nella directory more- itertools e installarlo normalmente.

  1. Scarica il pacchetto
  2. Disimballalo se è un archivio
  3. Navigate ( cd ...) nella directory contenentesetup.py
  4. Se sono presenti istruzioni di installazione contenute nella documentazione qui contenuta, leggere e seguire le istruzioni ALTRIMENTI
  5. Digitare: python setup.py install

2

Anche se la risposta di Sheena fa il lavoro, pipnon si ferma solo qui.

Dalla risposta di Sheena:

  1. Scarica il pacchetto
  2. decomprimerlo se è zippato
  3. cd nella directory contenente setup.py
  4. Se sono presenti istruzioni di installazione contenute nella documentazione qui contenuta, leggere e seguire le istruzioni ALTRIMENTI
  5. digitare python setup.py install

Alla fine di questo, ti ritroverai con un .eggfile in site-packages. Come utente, questo non dovrebbe disturbarti. Puoi importe uninstallil pacchetto normalmente. Tuttavia, se vuoi farlo in questo pipmodo, puoi continuare i seguenti passaggi.

Nella site-packagesdirectory,

  1. unzip <.egg file>
  2. rinomina la EGG-INFOdirectory come<pkg>-<version>.dist-info
  3. Ora vedrai una directory separata con il nome del pacchetto, <pkg-directory>
  4. find <pkg-directory> > <pkg>-<version>.dist-info/RECORD
  5. find <pkg>-<version>.dist-info >> <pkg>-<version>.dist-info/RECORD. Il >>è quello di prevenire la sovrascrittura.

Ora, guardando la site-packagesdirectory, non ti accorgerai mai di aver installato senza pip. Per uninstall, basta fare il solito pip uninstall <pkg>.


Cosa succede se sto installando un pacchetto dal repository Anaconda e non ha un setup.pyfile?
Confuso
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.