2010-02-23 22 views
14

İçinde bir virtualenv oluşturan bir komut dosyası var, distribute ve pip yükler ve sonra isteğe bağlı olarak bir git repo klonlar.PIP: Yalnızca bağımlılıkları yükleme

Artık üzerinde çalışacağım projem var. Ancak bağımlılıkları yüklü değil. pip'u pip install MyApp yayınlamış gibi tüm bağımlılıkları nasıl yükleyebilirim?

EDIT: Açıkçası, benim sorum this one bir kopyasıdır.

Tam olarak emin değilim ama pip install -e . etrafta yatan çok fazla şey olmadan istediğimi yapıyor gibi görünüyor. Kodumun site-packages olmasaydı tercih ederim.

+3

* Sanalenv oluşturan, dağıtan ve içine pip yükleyen bir komut dosyası var (...) *. Pip -E VENV_DIR pip 'ile pip' olarak pip ve yeni oluşturulan ortamda dağıtmak için pip olarak 3 şey yapabildiğini biliyor musun? –

+0

Harika bahşiş! Yine de söz konusu betiği kullanmıyorum. – muhuk

cevap

16

Paketimin kök yayınında pip install -e . bağımlılıkları yükler.

+0

Bu oldukça ciddi bir yan etki. '-e', düzenlenebilir modda yüklenir; bu, paketin kopyalanan yerine site paketlerinden bağlandığı anlamına gelir. Bu yaklaşımı, gidip paketini gerçekte kurmaya çalıştığınızda garip ve süptil sorunlara neden olmasını beklerdim, özellikle de ilk önce pip kaldırma işlemini yapmazsanız. –

9

Pip gereksinimleri dosyasını kullanmalısınız.

Esasen, tüm ihtiyaçlarınızı, bir dosyadaki her satırda bir tane koyun ve standart bir ortam varsa

pip install -r requirements.txt 

Dahası, Pip aslında böyle bir dosya dökümü komutunu kullanarak pip uzat onu komutunu kullanarak varolan yüklemeler gelen:

pip freeze 

böylece pip gereksinimleri doğrudan oluşturulan dosyayı koymak ve dağıtım komut dosyasından önceki komutu çağırabilir.

Çok havalı, değil mi?

+8

Güzel, ama soruma cevap vermiyor. Bağımlılıkları tanımlamanın bir yolunu aramıyorum. Soruların tamamen ve dikkatlice okunması, doğru cevapların verilmesinde uzun bir yoldur. – muhuk

+6

Bekleyin, Tüm bağımlılıklarınızı bir dosyaya koyabilir ve pip'in hepsini sizin için yüklemesini isteyebilirsiniz. Aradığın şey bu değil mi? Değilse, sorunuzu doğru anlamadım. Şimdi bile. –

+1

'bağımlılıkların' belirtildiği yer olan farklar - require.txt dosyasında ("myrepo == 1.0.1" seçeneğini belirttiğiniz "veya" ne olursa olsun) OR "ı yüklemek istediğiniz myrepo paketinin setup.py dosyasında. Eğer repo elinizde zaten varsa, sadece bağımlılıkları kurmak mantıklı olabilir. – andy