linux komutu bulundu ancak sudo kullanırken bulunamadı


11

Ben böyle bir python3 yükleme çalıştırmak için çalışıyorum:

pip3 install django

Hatayı alıyorum:

PermissionError: [Errno 13] İzin reddedildi: '/usr/local/lib/python3.6/site-packages/pytz'

Sonra deniyorum:

sudo pip3 install django

Hatayı alıyorum:

sudo: pip3: komut bulunamadı

$ PATH'ım şöyle görünüyor:

/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin

Pip3'e sudo erişimini nasıl alabilirim?

Yanıtlar:


9

Sudo PATHgüvenlik nedenleriyle mevcut kullanıcınızla aynı şeyi kullanmıyor . Burada sudo ile komutları çalıştırırken kullanılan yolu belirten /etc/sudoersbir seçenek secure_pathvardır. Benimki şöyle:

Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

Sudo man sayfasından:

 secure_path   Path used for every command run from sudo.  If you don't trust the people running sudo to have a sane PATH environment
               variable you may want to use this.  Another use is if you want to have the “root path” be separate from the “user path”.
               Users in the group specified by the exempt_group option are not affected by secure_path.  This option is not set by
               default.

pip3Komut tarafından tanımlanan yol muhtemelen değildir sudoersdosyası. Komuta secure_pathgiden yolu ekleyebilir veya pip3komutun tam yolunu şu şekilde sağlayabilirsiniz :

sudo /path/to/pip3 install django

1

Sudo, kullanıldığında $ PATH değişkeninizi korumuyor olabilir. Örneğin, komut PIP3 ikili tam yolunu kullanmayı deneyin: sudo /path/to/pip3 install django. Tam yoldan emin değilseniz, yapın which pip3.


hangi pip3 çıktıları: / usr / local / bin / pip3. $ PATH değişkeni de iyi görünüyor: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2- user / bin
petey

does sudo echo $PATHüretim farklı bir şey? Komutu pip3 tam yolu ile denediniz mi? Sonuçlarda herhangi bir fark var mı?
Safado

sudo aynı çıktıyı verir: /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/ec2-user/.local/bin:/home/ec2-user/bin
petey


0

Django kurulumunu şu şekilde yayınladım:

pip3 install --user django

Bu sorunu düzeltti.

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.