Pertanyaan pip install -r: OSError: [Errno 13] Izin ditolak


Saya mencoba mengatur Django.

Ketika saya menjalankan pip install -r requirements.txt, Saya mendapatkan pengecualian sebagai berikut:

Installing collected packages: amqp, anyjson, arrow, beautifulsoup4, billiard, boto, braintree, celery, cffi, cryptography, Django, django-bower, django-braces, django-celery, django-crispy-forms, django-debug-toolbar, django-disqus, django-embed-video, django-filter, django-merchant, django-pagination, django-payments, django-storages, django-vote, django-wysiwyg-redactor, easy-thumbnails, enum34, gnureadline, idna, ipaddress, ipython, kombu, mock, names, ndg-httpsclient, Pillow, pyasn1, pycparser, pycrypto, PyJWT, pyOpenSSL, python-dateutil, pytz, requests, six, sqlparse, stripe, suds-jurko
Cleaning up...
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 283, in run
    requirement_set.install(install_options, global_options, root=options.root_path)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1436, in install
    requirement.install(install_options, global_options, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 672, in install
    self.move_wheel_files(self.source_dir, root=root)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 902, in move_wheel_files
    pycompile=self.pycompile,
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 206, in move_wheel_files
    clobber(source, lib_dir, True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 193, in clobber
    os.makedirs(destsubdir)
  File "/usr/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/amqp-1.4.6.dist-info'

Apa yang salah dan bagaimana cara memperbaikinya?


74
2017-07-20 08:58


asal


Jawaban:


Apakah Anda sudah mencoba sudo?

sudo pip install -r requirements.txt

(Diedit mengenai komentar) atau opsi yang lebih aman:

a) Buat virtualenv, aktifkan dan instal:

virtualenv env
source env/bin/activate
pip install -r requirements.tx

b) Pasang user-wise

pip install --user -r requirements.txt

Rekomendasi saya menggunakan opsi aman (a).


31
2017-07-20 09:02



Kami benar-benar harus berhenti menasihati penggunaan sudo dengan pip install. Lebih baik mencoba dulu pip install --user. Jika ini gagal maka lihatlah pos teratas sini.

Alasan Anda tidak seharusnya menggunakan sudo adalah sebagai berikut:

Ketika Anda menjalankan pip dengan sudo, Anda menjalankan kode Python sewenang-wenang dari Internet sebagai pengguna root, yang merupakan risiko keamanan yang besar. Jika seseorang memasang proyek berbahaya di PyPI dan Anda menginstalnya, Anda memberikan akses root penyerang ke mesin Anda.


262
2018-02-03 10:24



Anda mencoba menginstal paket di lintasan sistem tanpa izin untuk melakukannya.

  1. Secara umum, Anda bisa menggunakannya sudo untuk sementara waktu superuser  perizinan atas tanggung jawab Anda untuk menginstal paket pada jalur sistem-lebar:

    sudo pip install -r requirements.txt
    

    Temukan lebih banyak tentang sudo  sini.

  2. Jika Anda tidak ingin melakukan perubahan seluruh sistem, Anda dapat menginstal paket pada Anda per-pengguna jalur menggunakan --user bendera.

    Yang dibutuhkan adalah:

    pip install --user runloop requirements.txt
    
  3. Akhirnya, untuk bahkan kontrol berbutir halus, Anda juga bisa menggunakan virtualenv, yang mungkin menjadi solusi unggul untuk lingkungan pengembangan, terutama jika Anda sedang mengerjakannya beberapa proyek dan ingin melacak setiap dependensi seseorang.

    Setelah mengaktifkan virtualenv Anda dengan

    $ my-virtualenv/bin/activate

    perintah berikut akan menginstal paket di dalam virtualenv (dan tidak di jalur sistem-lebar):

    pip install -r requirements.txt


22
2017-07-20 09:02



Hanya mengklarifikasi apa yang berhasil bagi saya setelah banyak rasa sakit di linux (berdasarkan ubuntu) pada izin ditolak kesalahan, dan memanfaatkan dari jawaban Bert di atas, saya sekarang menggunakan ...

$ pip install --user <package-name>

atau jika menjalankan pip pada file persyaratan ...

$ pip install --user -r requirements.txt

dan ini bekerja dengan andal untuk setiap instalasi pip termasuk menciptakan lingkungan virtual.

Namun, solusi terbersih dalam pengalaman saya selanjutnya telah menginstal python-virtualenv dan virtualenvwrapper dengan sudo apt-get install di tingkat sistem.

Kemudian, di dalam lingkungan virtual, gunakan pip install tanpa --user bendera DAN tanpa sudo. Jauh lebih bersih, lebih aman, dan lebih mudah secara keseluruhan.


21
2018-05-27 07:22



Pengguna tidak memiliki izin menulis untuk beberapa jalur pemasangan Python. Anda dapat memberi izin dengan:

sudo chown -R $USER /absolute/path/to/directory

Jadi Anda harus memberi izin, lalu coba pasang lagi, jika Anda memiliki jalur baru, Anda juga harus memberi izin:

sudo chown -R $USER /usr/local/lib/python2.7/

7
2017-08-16 13:38



Dalam kasus saya, saya menemukan .local direktori dengan jalur ke pip sejajar dengan pip3 di /usr/lcoal/bin. Setelah menghapus .local direktori semua diatur dengan baik.


-2
2018-05-18 10:43



Hanya perintah ini yang berhasil untuk saya jika seseorang membutuhkan:

sudo -H /usr/local/bin/pip install --upgrade boto3

-2
2017-12-19 12:41



coba gunakan sudo su perintah jika Anda menggunakan Ubuntu dan kemudian jalankan pip install sebagai Pengguna Super .. ini mungkin membantu .. Saya mengalami masalah yang sama dan itu terpecahkan karena ini ..

Jika Anda berada di windows coba jalankan pip install perintah dengan menjalankan command prompt (cmd) sebagai admin!


-3
2017-11-21 07:26



Sebelumnya saya juga memiliki beberapa kesalahan seperti disebutkan pada pertanyaan pertama, dengan perintah ini ..

pip install tweepy

lalu saya coba, ini,

sudo pip install -r requirements.txt

juga mencapai kesalahan (kesalahan lain) seperti di bawah ini,

Tidak dapat membuka file persyaratan: [Errno 2] Tidak ada file atau direktori seperti itu:   'requirements.txt'

dan kemudian saya mencoba yang ini, dan bekerja di dalam saya ...

pip install --user tweepy

-3
2018-03-23 10:36