pip install: Lütfen bu dizinin izinlerini ve sahibini kontrol edin


155

Pip ve python yüklerken ben şöyle bir koştu var:

'/ Users / Parthenon / Library / Logs / pi' dizini veya üst dizini geçerli kullanıcıya ait değil ve hata ayıklama günlüğü devre dışı bırakıldı. Lütfen dizinin izinlerini ve sahibini kontrol edin. Sudo ile pip çalıştırıyorsanız, -H bayrağını isteyebilirsiniz.

çünkü şimdi kullanarak yüklemeliyim sudo.

Python'um ve Mac'imde zaten yüklü bir avuç kütüphane vardı, Yosemite kullanıyorum. Son zamanlarda temiz bir silme yapmak ve daha sonra işletim sistemini yeniden yüklemek zorunda kaldım. Şimdi bu istemi alıyorum ve nasıl değiştirileceğini bulmakta zorlanıyorum

Komut satırım Parthenon$şimdi olmadan öncePhilips-MBP:~ Parthenon$

Bu bilgisayarın tek sahibiyim ve bu tek hesap. Bu, python 3.4'e yükseltme yaparken bir sorun gibi görünüyor, hiçbir şey doğru yerde görünmüyor, virtualenv beklediğim yere gitmiyor, vb.


Hesap adınız Philip mi?
komaromy

Dün kendi makinemde pip kullanırken bunun olduğunu fark ettim, virtualenv ile ne beklediğiniz yere gitmiyorsunuz?
Padraic Cunningham

Makineme Python 3.4'ü yükledim, ancak terminalimde python çalıştırdığımda, tüm kurulum işleminden geçtikten sonra bile hala 2.7 çalışıyor. Sadece virtualenv'den bahsettim çünkü genellikle Kütüphane / Python / 3.4'te bulmayı beklerdim ama Kütüphane / Python / 3.4 yok
Phil Andrews

python3 yorumlayıcısını kullanmak için python3 veya python3.4 gibi bir şey kullanmanız gerekir, yeniden açılan öğeler sadece bir ayardır, ubuntu aynı seçeneğe sahiptir.
Padraic Cunningham

@PadraicCunningham olsa da aynı pip sorunu alıyorsunuz? Yakın zamanda Yosemite'ye geçtiniz mi?
Phil Andrews

Yanıtlar:


127

Ben çalışmasını gitti ben de benim Mac'te bu değişikliği görünce pipiçin sudo pip. Sudo'ya eklemek -Hmesajın benim için gitmesine neden olur. Örneğin

sudo -H pip install foo

man sudobunun hedef kullanıcılara (bu durumda kök) ayarlanmasına -Hneden olduğunu söylüyor .sudo$HOME

Bu yüzden pip içine bakıyor görünür $HOME/Library/Logve sudokurmadığını varsayılan olarak $HOMEiçin /root/. Şaşırtıcı olmayan bir şekilde ~/Library/Logroot yerine bir kullanıcı olarak size aittir.

Bunun pip'te yeni bir değişiklik olduğundan şüpheleniyorum. Birlikte çalıştırmak edeceğiz sudo -Hşimdi geçici bir çözüm için.


18
Lütfen sudo pipkullanımın tamamen yanlış olduğunu unutmayın . Daha fazla bilgi için lütfen buraya bakın stackoverflow.com/questions/33004708/…
Mikko Ohtamaa

Aynı sorunu yaşadım, ama şimdi "-H" bayrağını kullanarak yüklemem gerekiyor.
Malachi Bazar

62

Burada sorun ne kullanarak sanalenv kullanarak bir şekilde yüklü olmasıdır sudo. Muhtemelen kazara. Bu, rootkullanıcının Python paket verilerini yeniden yazacağı ve root'a ait tüm dosyaların olacağı anlamına gelir ve normal kullanıcınız artık bu dosyaları yazamaz. Genellikle virtualenv yalnızca normal UNIX kullanıcınız tarafından kullanılmalı ve sahiplenmelidir.

UNIX dosya izin paketini kullanıcınıza değiştirerek sorunu düzeltebilirsiniz. Deneyin:

$ sudo chown -R USERNAME /Users/USERNAME/Library/Logs/pip
$ sudo chown -R USERNAME /Users/USERNAME/Library/Caches/pip

Sonra piptekrar bu dosyaları yazmak için mümkün olmalıdır.

UNIX dosya izin yönetimi hakkında daha fazla bilgi


Pip hala hatayla yazıyor. Ben de benzer bir uyarı var ve benim izinleri doğru, OP aslında bir sanalenv kullanmıyor bu yüzden paketleri küresel yükleme sudo gerektirir mantıklı olurdu.
Padraic Cunningham

1
@PadraicCunningham: Pip, izinlerinizin yanlış olduğuna dair bir hata verirse, lütfen dosya izinlerinizi gösterin, böylece onlarla ilgili sorunun ne olduğunu bulabiliriz. Aksi takdirde yardım karanlıkta bir atış olurdu.
Mikko Ohtamaa

Ayrıca başka bir soru açmanızı öneririm çünkü sorununuz orijinal
yazarınkinden

Kendi kullanıcı adımı kullanarak bir hata aldım: Giriş: sudo chown -R USERNAME / Users / USERNAME / Library / Logs / pip Çıktı: chown: / Users / USERNAME / Library / Logs / pip: Böyle bir dosya veya dizin yok
user2755660

61

pip install --user <package name> (sudo gerekmez) benim için çok benzer bir sorun için çalıştı.


Kurulum için en az bir gereklilik belirtmelisiniz (bkz. "Pip yardım kurulumu")
Amir

0

temel bilgi

  • sistem: mac os 18.0.0
  • şimdiki kullanıcı: yutou

anahtar

  1. cari hesabı tekerlek grubuna ekle
sudo dscl . -append /Groups/wheel wheel $(whoami)
  1. python paket modunu 775 olarak değiştirin.
chmod -R 775 ${this_is_your_python_package_path}

hepsi

  • python3 iyi derlendiğinde, bilgi aynı soruda olduğu gibidir.
  • Kullanmaya çalıştım pip3 install requestsve aldım:
File "/usr/local/python3/lib/python3.6/os.py", line 220, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: 
'/usr/local/python3/lib/python3.6/site-packages/requests'
  • böylece ben cd /usr/local/python3/lib/python3.6/site-packages, ls -alve sonra:
drwxr-xr-x    6 root   wheel   192B  2 27 18:06 requests/

Bunu gördüğümde, anladım, makedirs yazma eylemidir, ancak drwxrwxr-xyalnızca kullanıcı kökü dağıtılan istek modu istek dosyasını yazabilir. whoamiGrup tekerleğine yutou ( ) ekleyin ve paketi grup tekerleğine değiştirin, sonra yazabilirim ve sorun çözüldü.

Grup tekerleğine yutou nasıl eklenir? + grup tekerleğini tespit sudo dscl . -list /groups GroupMembershipederseniz, şunları bulacaksınız:

wheel                    root

grup tekerleği sadece bir üye köküdür. + grup tekerleğine yutou ekleyin sudo dscl . -append /Groups/wheel wheel yutou. + kontrol et sudo dscl . -list /groups GroupMembership:

wheel                    root yutou

python paket modunu değiştirme

chmod -R 775 /usr/local/python3/lib/python3.6

0

$ PATH değişkeninizi değiştirdiyseniz, bu da soruna neden olabilir. Bunun sorun olabileceğini düşünüyorsanız, ~ / .bash_profile veya ~ / .bashrc

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.