python setuptools - arresto setup.py dall'installazione come uovo



2.7 easy (3)

Anni dopo, lo stesso problema, non soddisfatto della risposta accettata. Trovato in gruppi di Google:

pushd /path/to/my/package/ 
python setup.py sdist 
popd 
pip install /path/to/my/package/dist/package-1.0.tar.gz

Spiegazione: python setup.py sdist crea una distribuzione di origine che naturalmente non è un * .egg! L'archivio risultante (.tar.gz in unix, .zip in windows) può essere installato come qualsiasi modulo remoto con pip. Non richiede nemmeno parametri aggiuntivi! Ciò risulta nel modulo completamente sfogliabile desiderato.

Come posso impedire a setup.py di installare un pacchetto come un uovo? O ancora meglio, come faccio easy_install dall'installare un pacchetto come un egg ?

sudo python setup.py install

La ragione è che PyDev è piuttosto schizzinoso riguardo i pacchetti in formato egg ... Il pacchetto al quale sono interessato al momento è boto .

Aggiornamento: ho trovato il modo bruto di farlo:

sudo easy_install -m boto
cd path/to/boto-xyz.egg
sudo mv boto ..
sudo rm -rf boto-xyz.egg

Mi sento come se mi mancasse qualcosa di sottile o importante (incontrando questa pagina anni dopo che la domanda è stata posta e non trovando una risposta soddisfacente) tuttavia il seguente funziona bene per me:

python setup.py install --single-version-externally-managed --root=/

I file compressi *.egg sono un'invenzione di setuptools (non sono un grande fan di essi anche se capisco perché sono stati creati) e poiché lo script setup.py utilizza (e potrebbe richiedere) setuptools, il pacchetto finisce per essere installato come un file *.egg compresso.

Le opzioni della riga di comando sopra sono simili a quelle usate da pip (il gestore di pacchetti Python) che suggerisce un altro modo per impedire che un pacchetto venga installato come un file *.egg compresso: Basta usare pip! Se si dispone di una directory contenente uno script setup.py , è possibile eseguire il seguente comando in tale directory per installare il pacchetto utilizzando pip:

pip install .

Questo è un miglioramento rispetto al comando setup.py precedente perché tiene traccia di ulteriori metadati (ad esempio il tracciamento dei file installati consente una rimozione più affidabile).


Per utilizzare pip, non è obbligatorio installare direttamente pip nel sistema. Puoi usarlo tramite virtualenv . Quello che puoi fare è seguire questi passaggi:

  • Scarica il file virtual.gov tar.gz da virtualenv
  • Decomprimilo con 7zip o qualche altro strumento

Normalmente abbiamo bisogno di installare pacchetti Python per un particolare progetto. Quindi, ora crea una cartella di progetto, diciamo myproject.

  • Copia il file virtualenv.py dalla cartella decompressa di virtualenv e incollalo nella cartella myproject

Ora crea un ambiente virtuale, diciamo myvirtualenv come segue, all'interno della cartella myproject :

python virtualenv.py myvirtualenv

Ti mostrerà:

New python executable in myvirtualenv\Scripts\python.exe
Installing setuptools....................................done.
Installing pip.........................done.

Ora il tuo ambiente virtuale, myvirtualenv , viene creato all'interno della cartella del tuo progetto. Potresti notare che pip è ora installato nell'ambiente virtuale dell'utente. Tutto ciò che devi fare è attivare l'ambiente virtuale con il seguente comando.

myvirtualenv\Scripts\activate

Vedrai quanto segue al prompt dei comandi:

(myvirtualenv) PATH\TO\YOUR\PROJECT\FOLDER>pip install package_name

Ora puoi iniziare a usare pip, ma assicurati di aver attivato il virtualenv guardando a sinistra del tuo prompt.

Questo è uno dei modi più semplici per installare pip ie all'interno dell'ambiente virtuale, ma è necessario avere con sé il file virtualenv.py.

Per ulteriori metodi di installazione di pip / virtualenv / virtualenvwrapper, è possibile fare riferimento a thegauraw.tumblr.com .





python pydev setuptools easy-install