2013-02-04 28 views
33
sorun bükülmüş

Python paketleri pip

pip --version 

pip 1.1 from /home/chris/GL/GLBackend/glenv/lib/python2.7/site-packages/pip-1.1-py2.7.egg (python 2.7)

Her ihtimale karşı bir sanal ortam

[email protected] ~/GL/GLBackend $ sudo virtualenv -p python2.7 glenv 

Running virtualenv with interpreter /usr/bin/python2.7 New python executable in glenv/bin/python2.7 Also creating executable in glenv/bin/python Installing distribute.............................................................................................................................................................................................done. Installing pip...............done.

oluştur yüklerken yaşıyorum

kullanarak virtualenv yükleme değil , Ben yaparım nable tüm izinler

[email protected] ~/GL/GLBackend $ sudo chmod -R 777 glenv 

[email protected] ~/GL/GLBackend $ source glenv/bin/activate 


(glenv)[email protected] ~/GL/GLBackend $ pip freeze 

argparse==1.2.1 distribute==0.6.24 wsgiref==0.1.2

bükülmüş

Requirement already satisfied (use --upgrade to upgrade): twisted in /usr/local/lib/python2.7/dist-packages Requirement already satisfied (use --upgrade to upgrade): zope.interface>=3.6.0 in /usr/local/lib/python2.7/dist-packages (from twisted) Requirement already satisfied (use --upgrade to upgrade): distribute in /usr/local/lib/python2.7/dist-packages (from zope.interface>=3.6.0->twisted) Cleaning up... (glenv)[email protected] ~/GL/GLBackend $ pip uninstall twisted Cannot uninstall requirement twisted, not installed Storing complete log in /home/chris/.pip/pip.log

(glenv)[email protected] ~/GL/GLBackend $ sudo pip install twisted 
yüklü olarak burada listelenen Ama bunu yüklediğinizde o onun zaten yüklü diyor değildir. ,

sudo pip install -I twisted 

Downloading/unpacking twisted Downloading Twisted-12.3.0.tar.bz2 (2.6Mb): 2.6Mb downloaded Running setup.py egg_info for package twisted . . .

Successfully installed twisted zope.interface distribute Cleaning up...

Ve bükülmüş kullanın Python çalışan çalıştığınızda henüz hala **

(glenv)[email protected] ~/GL/GLBackend $ pip freeze 

argparse==1.2.1 distribute==0.6.24 wsgiref==0.1.2

yüklenmemiş alıyorum: yüklemek zorla twisted'in yüklü olmadığını belirten bir hata. Yani:

ImportError: No module named twisted.python**

+0

Neden "virtualenv" altından "pip install" ile sudo 'kullanıyorsunuz? 'Pip' sisteme yüklemeyi denediğinden emin değilim ('/ usr/local/lib/python2.7' yerine, ~ ~ glenv yerine, gördüğünüz gibi. 'sudo 'kullandığınız zaman, ama en azından makul. (Ayrıca, sv'nizi ilk etapta yaratmak için 'sudo'yu kullanmamalısınız.) – abarnert

+0

@abarnert zaten size yanıt verdi ve aynı sorunu yaşıyorsanız http://stackoverflow.com/q/14665330/565999 –

cevap

54

burada sorun olmamalı ne zaman sudo kullandığınız olmasıdır. Ve bu, neden ~/glenv/lib yerine /usr/local/lib yüklemeye çalışacak şekilde neden oluyor. (Ve, sudo kullandınız çünkü başarıyla yapıyor, ancak bu size yardımcı olmaz, çünkü venvinizde sistem site paketlerine izin vermiyorsunuz.)

sudo pip'un bu davranışa yol açmasının birden çok nedeni olabilir. Ancak, en muhtemel olanı şudur: Çoğu sistemde (çeşitli Mac ve RHEL/CentOS kutularına anında erişimim var), sudoers dosyası ortamınızı sıfırlar ve daha sonra birkaç beyaz listedeki ortam değişkenine tekrar ekleyecektir. Bu, sudo pip, virtualenv'un ayarladığı ortam değişkenlerini görmeyeceği anlamına gelir, bu yüzden varsayılan şeyi yapmaya geri döner ve sisteminizin yerine, Python'unuzu sisteminize yükleyin.

Fakat gerçekten, bu durumun neden önemli olmadığı neden oluyor. Cevap aynı: sadece sudo pip install yerine pip install yapın. bu muhtemelen venv neden olacağından siz da, virtualenv çağrı üzerine sudo kaldırmak istediğiniz

Not (aksi şart olmazdı sudo chmod, ihtiyaç neden olan) yanlış kurulacak. Kullanıcı giriş dizininizin altındaki şeyleri kurmanın tüm amacı, bunu normal kullanıcı izinlerinizle yapabilmenizdir.

Bir yan not olarak, daha yeni bir virtualenv/pip sürümüne yükseltmek isteyebilirsiniz, 1.8 ve 1.2'de bazı hata düzeltmeleri ve geliştirmeler var. Ancak, en son (1.8.4 ve 1.2.1) sürümleriyle tam olarak aynı sorunu aldığımı doğruladım, bu yüzden burada alakalı olduğunu düşünmüyorum.

+3

'sanalenv'imi'/opt' klasörüne yüklemek isteyip istemediğime ne dersin? Bir "İzin Reddedildi" hatası alıyorum. –

+0

Çok teşekkürler :) –

+0

@Giri: sudo kullanarak bir alt dizin oluşturabilir, kullanıcı veya grup izninizi verebilir ve sudo olmaksızın tüm virtualenv şeylerini yapabilirsiniz. Normal bir kullanıcı için olsa, onların homedirmek için tercih edebilirsiniz. – Mark

İlgili konular