2013-09-03 15 views
11

Evdeki yeni dev makinemde bir geliştirme ortamı kurmaya çalışıyorum. Ubuntu'yu yeni kurdum ve şimdi web sunucusundan uzak bir repo'yu klonlamaya ve bağımlılıklarını kurmaya çalışıyorum, böylece işe başlayabilirim.Pip, etkinleştirilen virtualenv'e paketleri kurmuyor, gereksinimleri göz ardı ediyor.txt

Şimdiye kadar pypi'den virtualenv ve virtualenvwrapper'u manuel olarak yükledim ve terminalime başladığımda sanalenvs kaynağımı oluşturmak için bash.rc'yi uygun şekilde düzenledim. Sonra repo'umu ~/projects/project-name/websitename.com'a klonladım. Daha sonra ~/projects/project-name/websitename.com'dan virtualenvwrappermkvirtualenv env-name'a kullandım. Bu tam olarak klonlandığım web sunucusunun file-structure/setup'unu yansıtır. Çok uzak çok iyi.

Dev sunucusuna giriş yaptım ve virtualenv'u burada etkinleştirdim ve bir bağımlılık listesi oluşturmak için yerel makinemde pip freeze -l > req.txt kullanın. Yerel makinemde virtualenv'u etkinleştiriyorum, ~/projects/project-name/websitename.com'a gidin ve pip install -r path-to-req.txt'u çalıştırın ve hiçbir şey yanlış gibi tüm bağımlılıklardan geçiyor. Ancak, manage.py syncdb'u denediğimde çekirdek django paketlerini bulma konusunda bir hata alıyorum. Ne oluyor be? Yani bir şekilde Django yüklemek için başarısız, i run pip install Django==1.5.1 ve başarılı bir şekilde tamamlar. Sitemi tekrar kurmam ve django_extensions adlı bir modül hakkında başka bir hata almam gerekiyor. Tamam, ne cehennemde, tüm bu paketleri pip'le kurdum ?!

Yani pip freeze -l > test.txt ve cat test.txt, ne listesi var? Django==1.5.1, elle yüklediğim tek paket. Bağımlılıklarımın belirtilen listeden sanalenvüme yüklenmesi neden pip değil? Ne karıştırıyorum burada?

-Edit ------------- bana sadece 1 VIRTUALENV var ve etkinleştirildiğinde

benim virtualenv pip yolu verir pip

+3

Yaptığınız her şey iyi görünüyor, "hangi pip" ile hata ayıklamaya çalışın. – elyase

+0

da gerekli paketlerin yüklü olup olmadığını bulmak için ~/.virtualenvs -type d -iname "anypackage" 'ı bulmayı deneyin. Ayrıca, https: // gist.github.com/insin/1425703 'ü kullanmanızı tavsiye ederim. – sagarchalise

+0

komutunu çalıştıran, virtualenv'imdeki tek paketler, Django'yu yüklemek için el ile pip sorduğum tek şeydir, diğerleri de pip dosyasında işlenen dosyalar göz ardı edildi. Ben de bir şekilde hangi sanal makineyi aktifleştirdiğimi gösteren güzel bir istemi alıyorum. – leotemp

cevap

6

Her zamanki iş akışı

pip freeze > someFile.txt 

sokmak ve daha sonra

pip install -r someFile.txt 
ile yüklemek

Bu yüzden, bunun gayet iyi çalışması gerektiğinden eminim. Ne yazık ki gerçekten

  1. Gerçekten sen de olduğunu düşünüyorum virtualenv olup olmadığını kontrol etmek yanında emin olun size bir şey söyleyemem. Emin olun

    workon yourVirtualEnvName 
    

    bunu sadece etkinleştirmek için koşmak önemli olan durumlarda.

  2. Piponun sanal makinenizin içinde olup olmadığını kontrol ettiğinizden emin olun.

    which pip 
    

    bana

Üzgünüm size daha somut bir cevap veremem

/path/to/home/.virtualenvs/myVirtEnv/bin/pip 
verir. Bunu yarı düzenli olarak yapmalıyım ve bağımlılıkları atlamada hiç bir problemim olmadı. İyi şanslar!

+2

Huh kullanarak yükleyebilirsiniz, evet, pip install -r someFile.txt dosyasını yükledim ve yükleme ve yükleme olduğunu söyledikten sonra izledim, ancak paketler mevcut değil. Örneğin şöyle diyor: django-extensions indirme/açma == 1.1.1 (from -r req.txt (satır 14)) django-extensions-1.1.1.tar.gz indirme (149kB): 149kB indirilen Django-extensions paketi için setup.py egg_info çalıştırılıyor. Ancak django uzantıları yüklü görünmüyor ve hala çağrıldığında bir hataya neden oluyor. Ayrıca donup pipettiğimde de görünmüyor .. – leotemp

+5

buna bir çözüm yolladın mı? Bende aynı problemi yaşıyorum. – ajay

3

Uzun zaman önce bu sorunun bazı varyasyonlarıyla mücadele etti; benim dağınık .bash_profile dosyam oldu.

Eğer .bash_profile/.bashrc içindeki pisliği VIRTUALENV olabilir şey gibi $VIRTUAL_ENV veya $PYTHONHOME veya $PYTHONPATH ortam değişkenleri yok emin olun.

2

Bunun eski bir yazı olduğunu biliyorum, ancak benzer bir sorunla karşılaştım. Benim durumumda, neden sudo kullanarak pip install komutunu çalıştırıyordum. Bu, komutun global olarak yapılmasını sağladı ve paketler global python yoluna yüklendi. Umarım birilerine yardımcı olur.

İlgili konular