2013-09-03 18 views
11

Sto tentando di installare un ambiente di sviluppo sul mio nuovo computer di sviluppo a casa. Ho appena installato Ubuntu e ora sto tentando di clonare un repository remoto dal nostro server web e installare le sue dipendenze in modo da poter iniziare a lavorare.Pip non installa pacchetti su virtualenv attivato, ignora requirements.txt

Finora ho installato manualmente virtualenv e virtualenvwrapper da pypi e ho modificato il mio file bash.rc in modo appropriato per generare i miei virtualenv quando avvio il mio terminale. Ho quindi clonato il mio repository su ~/projects/project-name/websitename.com. Quindi ho usato virtualenvwrapper a mkvirtualenv env-name da ~/projects/project-name/websitename.com. Questo riflette esattamente lo file-structure/setup del server web da cui sto clonando. Fin qui tutto bene.

Ho effettuato l'accesso al server di sviluppo e ho attivato lo virtualenv e ho utilizzato pip freeze -l > req.txt per eseguire il rendering di un elenco di dipendenze e scp sul computer locale. Attivo il virtualenv sul mio computer locale, naviga su ~/projects/project-name/websitename.com ed eseguo pip install -r path-to-req.txt e scorre tutte le dipendenze come se nulla fosse sbagliato. Tuttavia, quando provo a manage.py syncdb ottengo un errore su non trovare pacchetti core di django. Che diavolo? Quindi immagino che in qualche modo Django non sia riuscito a installare, ho run pip install Django==1.5.1 e si completa con successo. Ho avuto modo di impostare nuovamente il mio sito e ottenere un altro errore su nessun modulo denominato django_extensions. Ok, che diavolo, ho appena installato tutti questi pacchetti con pip ?!

Quindi i pip freeze -l > test.txt e cat test.txt, cosa elenca? Django==1.5.1, l'unico pacchetto che ho appena installato manualmente. Perché pip non installa le mie dipendenze dalla mia lista specificata nel mio virtualenv? Cosa sto inventando qui?

-edit -------------

Quali pip mi dà il percorso per pip nel mio virtualenv

ho solo 1 virtualenv ed è attivato

+3

Tutto quello che stai facendo sembra ok, prova a eseguire il debug con 'which pip'. – elyase

+0

prova anche 'find ~/.virtualenvs -type d -iname" anypackage "' per vedere se i tuoi pacchetti richiesti sono installati o meno. Inoltre, ti consiglio di usare 'https: // gist.github.com/insin/1425703' che darà un bel prompt sulla virtualenv attivata nella tua bash. – sagarchalise

+0

eseguendo il comando, gli unici pacchetti nel mio virtualenv è quello che ho chiesto manualmente a pip di installare Django, tutti gli altri elaborati da pip nel file dei requisiti sono stati ignorati. In qualche modo ottengo anche un bel prompt che indica quale virtualenv ho attivato. – leotemp

risposta

6

mia normale flusso di lavoro è quello di

pip freeze > someFile.txt 

e quindi installare con

pip install -r someFile.txt 

Quindi sono certo che questo dovrebbe funzionare bene. Purtroppo non posso davvero dire nulla oltre a fare in modo di controllare che

  1. siete veramente nel virtualenv che pensi di essere in. Assicurarsi di eseguire

    workon yourVirtualEnvName 
    

    per attivarlo solo nel caso che importi.

  2. Assicurati di controllare che il pip sia all'interno del tuo virtualenv.

    which pip 
    

    mi dà

    /path/to/home/.virtualenvs/myVirtEnv/bin/pip 
    

Mi dispiace non posso dare una risposta più concreta. Devo farlo in modo semi-regolare e non ho mai avuto problemi con esso saltando le dipendenze. Buona fortuna!

+2

Huh, sì, sto installando pip install -r someFile.txt e guardo anche mentre dice che sta scaricando e installando ma poi i pacchetti non esistono. Ad esempio: Download/decompressione django-extensions == 1.1.1 (da -r req.txt (riga 14)) Download di django-extensions-1.1.1.tar.gz (149kB): 149kB scaricato Esecuzione di setup.py egg_info per pacchetto django-extensions . Ma django-extensions non sembra essere installato e causa ancora un errore quando viene chiamato. Inoltre, non appare quando faccio il pip freeze. – leotemp

+5

hai presentato una soluzione a questo? Sto avendo lo stesso identico problema. – ajay

3

Lottato con qualche variazione di questo problema non molto tempo fa; è finito per essere il mio file ingombrato .bash_profile.

assicurarsi che non si dispone di tutto ciò che potrebbe rovinare il vostro virtualenv all'interno del vostro .bash_profile/.bashrc, come ad esempio $VIRTUAL_ENV o $PYTHONHOME o $PYTHONPATH variabili d'ambiente.

2

So che questo è un vecchio post, ma ho appena riscontrato un problema simile. Nel mio caso la causa era che stavo eseguendo il comando pip install usando sudo. Ciò ha reso il comando eseguito globalmente e l'installazione dei pacchetti nel percorso python globale.

La speranza che aiuta qualcuno.

Problemi correlati