2013-01-04 24 views
30

Non riesco a trovare il modo corretto di installare una directory locale come un pacchetto python usando pip.pip installa un repository git locale

(venv) C:\(...)>pip install . --no-index 
Ignoring indexes: http://pypi.python.org/simple/ 
Unpacking c:\users\fsantos\desktop\biskates.com\biskates\forks\django-pipeline 
    Running setup.py egg_info for package from file:///(...)%5Cforks%5Cdjango-pipeline 

Installing collected packages: django-pipeline 
    Running setup.py install for django-pipeline 

Successfully installed django-pipeline 
Cleaning up... 

(venv) C:\(...)>cd .. 
(venv) C:\(...)>python 
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import pipeline 
>>> pipeline.__file__ 
'C:\\(...)site-packages\\pipeline\\__init__.py' 
>>> 

Come si può vedere il pip appena copiato sul pacchetto nei pacchetti del sito. Come posso evitarlo e usare il pacchetto direttamente dalla sua cartella sorgente?

Sto cercando di integrare django-pipeline nel mio progetto Django, ma prima voglio aggiungere il supporto per Django 1.4, quindi ho biforato e clonato la mia forcella.

risposta

5

pip funziona installando pacchetti su site-packages. Se vuoi semplicemente il modulo import regolarmente, tutto ciò che devi fare è aggiungere il percorso della directory alla tua variabile ambientale PYTHONPATH.

+0

Anche se non se la setup.py del pacchetto include estensioni che devono essere compilati –

65

Posso anche semplicemente usare:

cd your-local-repo 
pip install -e . 

o

python setup.py install develop 
+1

il mio scopo era solo per lo sviluppo, un po 'questa è una buona risposta. Questo dovrebbe funzionare anche su un requirements.txt in un virtualenv. –

+0

Impressionante soluzione! Come posso quindi disinstallare quando le modifiche vengono unite nel repository principale? – ken

+1

pip disinstallare your-local-repo-egg – silviomoreto

49

Se si lavora in un venv, si può fare questo:

ENV/bin/PIP installare git + file: /// percorso/a/tuo/git/repo

Oppure con una filiale:

ENV/bin/PIP installare git + file: /// path/to/la vostra/git/repo @ mybranch

+1

La domanda riguardava l'installazione di una directory effettiva (perché stavo sviluppando due progetti strettamente correlati e volevo scrivere codice su entrambi durante il debug), ma questo è un bel promemoria di ciò che può essere fatto! –

Problemi correlati