Không thể cài đặt gói do lỗi Môi trường: [Errno 13]


97

Trong thiết bị đầu cuối MacOS Mojave của mình, tôi muốn cài đặt một gói python bằng pip. Ở cuối nó nói:

You are using pip version 10.0.1, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Vì vậy, tôi muốn cập nhật pip bằng lệnh đã cho nhưng tôi gặp lỗi:

Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: 
'/Library/Python/2.7/site-packages/pip-18.0-py2.7.egg/EGG-INFO/PKG-INFO'
Consider using the `--user` option or check the permissions.

Tôi thực sự không hiểu phải làm gì bây giờ. Ngoài ra, tôi nhận ra nó nói Python 2.7 trong thông báo lỗi nhưng tôi có và muốn chỉ sử dụng python 3.


6
Bạn đã đọc phần: "Cân nhắc sử dụng --usertùy chọn hoặc kiểm tra các quyền."
Klaus D.

Tôi chỉ thử nó, bạn là đúng! Tôi nghĩ rằng nó sẽ KIỂM TRA các quyền chứ không phải GIVE quyền. Cảm ơn bạn!
Adler

2
Để cài đặt các gói cho python3, bạn cần sử dụng pip3 Để nâng cấp pip, chỉ cần chạy như sudo nếu bạn gặp lỗi quyền.
BoboDarph


Câu trả lời:


151

Nếu bạn muốn sử dụng python3 + để cài đặt các gói bạn cần sử dụngpip3 install package_name

Và để giải quyết lỗi 13 bạn phải thêm --uservào cuối

pip3 install package_name --user

BIÊN TẬP:

Đối với bất kỳ dự án trong python nó rất khuyến khích để làm việc trên một môi trường ảo , là một công cụ giúp giữ phụ thuộc theo yêu cầu của các dự án khác nhau tách bằng cách tạo ra các môi trường ảo cô lập python cho họ.

Để tạo một cái bằng python3 +, bạn phải sử dụng lệnh sau:

virtualenv enviroment_name -p python3

Và sau đó bạn làm việc trên nó chỉ bằng cách kích hoạt nó:

source enviroment_name/bin/activate

Khi môi trường ảo được kích hoạt, tên của môi trường ảo của bạn sẽ xuất hiện ở bên trái của thiết bị đầu cuối. Điều này sẽ cho bạn biết rằng môi trường ảo hiện đang hoạt động. Bây giờ bạn có thể cài đặt các phụ thuộc liên quan đến dự án trong môi trường ảo này bằng cách sử dụng pip.

pip install package_name

2
Tôi đã làm điều này nhưng tôi vẫn gặp sự cố. Tôi đã cài đặt bình nhưng vẫn không thể tìm thấy nó trong venv của tôi. Tôi có thể làm gì?
Leonard

Hãy thử virtualenv -p python3.8 enviroment_name Cách sử dụng: virtualenv [OPTIONS] DEST_DIR
Tommy Gibbons

1
Hoạt động hoàn hảo. Cảm ơn bạn!
Haardik Dharma

22

Về lệnh quyền, hãy thử sử dụng sudo trước lệnh đầu cuối của bạn:

sudo pip install --upgrade pip

Sudo là một chương trình cho phép bạn chạy lệnh với các đặc quyền của superuser.

Về python Hãy thử chạy pip dưới dạng tệp thực thi như sau:

python3.6 -m pip install <package>

5

Tôi đã mắc phải những sai lầm tương tự sau đó tôi nhận ra rằng tôi đã tạo môi trường ảo của mình với tư cách là người dùng root. Nó đã được bảo vệ ghi, vì vậy hãy kiểm tra xem môi trường ảo của bạn có được bảo vệ ghi hay không. tạo một địa điểm mới và thử lại


4

Tôi gặp lỗi tương tự khi cố gắng cài đặt một gói (phân loại bình).
Tôi đã mắc lỗi khi cài đặt anaconda dưới dạng root. Tôi đã thay đổi quyền sở hữu của thư mục anaconda đã cài đặt và tôi có thể cài đặt gói này thành công.

Sử dụng lệnh chownvới tùy chọn -Rđể thay đổi đệ quy quyền sở hữu của thư mục anaconda đã cài đặt như sau:

chown -R owner:group /path/to/anaconda

Ở đây chủ sở hữu là tên người dùng của bạn và nhóm là tên nhóm.


3

Đối với MacO và Unix

Chỉ cần thêm sudo vào lệnh sẽ hoạt động, vì nó sẽ chạy nó như một siêu người dùng.

sudo pip install --upgrade pip

Tuy nhiên, bạn không nên trực tiếp làm điều đó - vui lòng xem bài đăng này


Điều này không hữu ích cho người dùng Windows và lỗi này phổ biến hơn với người dùng Windows do quyền điều hành của Windows. Ngoài ra, lệnh nên được kèm theo trong khối mã, khi họ không nó làm cho nó khó đọc
logos_164

2

Câu trả lời là trong thông báo lỗi. Trong quá khứ, bạn hoặc một quá trình đã thực hiện sudo pipvà điều đó khiến một số thư mục bên dưới /Library/Python/2.7/site-packages/...có quyền khiến người dùng hiện tại của bạn không thể truy cập được.

Sau đó, bạn đã làm một pip install whateverđiều mà dựa vào điều khác.

Vì vậy, để khắc phục, hãy truy cập /Library/Python/2.7/site-packages / ... và tìm thư mục có quyền root hoặc không phải của người dùng và xóa rồi cài đặt lại các gói đó hoặc chỉ buộc quyền sở hữu cho người dùng ai phải có quyền truy cập.


đơn giản và làm việc. sử dụng $ whoami để biết được người dùng mà bạn đang xem sau đó $ sudo chown username /Library/Python/2.7/site-packages/ sau đó pip cài đặt bất cứ điều gì ... Bạn có thể phải sử dụng chown đệ quy
Sunil Kumar

2

Tôi đã gặp sự cố tương tự khi cài đặt numpyvới pip install numpy.

Sau đó tôi đã thử

sudo -H pip3 install --upgrade pip

sudo -H pip3 install numpy

Nó hoạt động tốt cho tôi.

Giải thích: Các -H(HOME) tùy chọn với sudobộ biến môi trường HOME để các thư mục chính của người dùng mục tiêu (root theo mặc định). Theo mặc định, sudo không sửa đổi HOME.



1

Tôi đã thử tất cả đề xuất được đăng ở đây, nhưng tôi vẫn nhận được lỗi 13,

Tôi đang sử dụng Windows và phiên bản python của tôi là 3.7.3

Sau 5 giờ cố gắng giải quyết nó, bước này đã hiệu quả với tôi:

Tôi cố gắng mở dấu nhắc lệnh bằng cách chạy với tư cách quản trị viên


0

Tôi cũng gặp vấn đề tương tự, tôi đã thử nhiều dòng lệnh khác nhau, cái này phù hợp với tôi:

Thử:

    conda install py-xgboost

Đó là những gì tôi nhận được:

Collecting package metadata: done
Solving environment: done

## Package Plan ##

  environment location: /home/simplonco/anaconda3

  added / updated specs:
    - py-xgboost


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    _py-xgboost-mutex-2.0      |            cpu_0           9 KB
    ca-certificates-2019.1.23  |                0         126 KB
    certifi-2018.11.29         |           py37_0         146 KB
    conda-4.6.2                |           py37_0         1.7 MB
    libxgboost-0.80            |       he6710b0_0         3.7 MB
    mkl-2019.1                 |              144       204.6 MB
    mkl_fft-1.0.10             |   py37ha843d7b_0         169 KB
    mkl_random-1.0.2           |   py37hd81dba3_0         405 KB
    numpy-1.15.4               |   py37h7e9f1db_0          47 KB
    numpy-base-1.15.4          |   py37hde5b4d6_0         4.2 MB
    py-xgboost-0.80            |   py37he6710b0_0         1.7 MB
    scikit-learn-0.20.2        |   py37hd81dba3_0         5.7 MB
    scipy-1.2.0                |   py37h7c811a0_0        17.7 MB
    ------------------------------------------------------------
                                           Total:       240.0 MB

The following NEW packages will be INSTALLED:

  _py-xgboost-mutex  pkgs/main/linux-64::_py-xgboost-mutex-2.0-cpu_0
  libxgboost         pkgs/main/linux-64::libxgboost-0.80-he6710b0_0
  py-xgboost         pkgs/main/linux-64::py-xgboost-0.80-py37he6710b0_0

The following packages will be UPDATED:

  ca-certificates     anaconda::ca-certificates-2018.12.5-0 --> pkgs/main::ca-certificates-2019.1.23-0
  mkl                                            2019.0-118 --> 2019.1-144
  mkl_fft                              1.0.4-py37h4414c95_1 --> 1.0.10-py37ha843d7b_0
  mkl_random                           1.0.1-py37h4414c95_1 --> 1.0.2-py37hd81dba3_0
  numpy                               1.15.1-py37h1d66e8a_0 --> 1.15.4-py37h7e9f1db_0
  numpy-base                          1.15.1-py37h81de0dd_0 --> 1.15.4-py37hde5b4d6_0
  scikit-learn                        0.19.2-py37h4989274_0 --> 0.20.2-py37hd81dba3_0
  scipy                                1.1.0-py37hfa4b5c9_1 --> 1.2.0-py37h7c811a0_0

The following packages will be SUPERSEDED by a higher-priority channel:

  certifi                                          anaconda --> pkgs/main
  conda                                            anaconda --> pkgs/main
  openssl                anaconda::openssl-1.1.1-h7b6447c_0 --> pkgs/main::openssl-1.1.1a-h7b6447c_0


Proceed ([y]/n)? y


Downloading and Extracting Packages
libxgboost-0.80      | 3.7 MB    | ##################################### | 100% 
mkl_random-1.0.2     | 405 KB    | ##################################### | 100% 
certifi-2018.11.29   | 146 KB    | ##################################### | 100% 
ca-certificates-2019 | 126 KB    | ##################################### | 100% 
conda-4.6.2          | 1.7 MB    | ##################################### | 100% 
mkl-2019.1           | 204.6 MB  | ##################################### | 100% 
mkl_fft-1.0.10       | 169 KB    | ##################################### | 100% 
numpy-1.15.4         | 47 KB     | ##################################### | 100% 
scipy-1.2.0          | 17.7 MB   | ##################################### | 100% 
scikit-learn-0.20.2  | 5.7 MB    | ##################################### | 100% 
py-xgboost-0.80      | 1.7 MB    | ##################################### | 100% 
_py-xgboost-mutex-2. | 9 KB      | ##################################### | 100% 
numpy-base-1.15.4    | 4.2 MB    | ##################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

0

hãy thử dòng lệnh này dưới đây cho MacOS để kiểm tra quyền của người dùng.

$ sudo python -m pip install --user --upgrade pip

0

Tôi đã cài đặt anaconda cho Python 3. Tôi cũng có Python2 trong máy mac của mình.

python --version

đưa cho tôi

Python 3.7.3

python2.7 --version

đưa cho tôi

Python 2.7.10

Tôi muốn cài đặt gói pyspark trong python2, vì nó đã được cài đặt trong python3.

python2.7 -m pip install pyspark

cho tôi một lỗi

Không thể cài đặt gói do Lỗi Môi trường: [Errno 13] Quyền bị từ chối: '/Library/Python/2.7/site-packages/pyspark' Hãy xem xét sử dụng --usertùy chọn hoặc kiểm tra quyền.

Lệnh dưới đây đã giải quyết nó. Cảm ơn chúa tôi không phải thực hiện bất kỳ thay đổi cấu hình nào.

python2.7 -m pip install pyspark --user

Thu thập pyspark Yêu cầu đã được thỏa mãn: py4j == 0.10.7 trong /Library/Python/2.7/site-packages (from pyspark) (0.10.7) Cài đặt các gói đã thu thập: pyspark Đã cài đặt thành công pyspark-2.4.4 Bạn đang sử dụng phiên bản pip 18.1 , tuy nhiên đã có phiên bản 19.3.1. Bạn nên xem xét nâng cấp thông qua lệnh 'pip install --upgrade pip'.


0

Tôi đã gặp sự cố tương tự trong một venv trên phân vùng NTFS được gắn trên linux với tất cả các quyền phù hợp. Đảm bảo rằng pip chạy với --ignore-install đã giải quyết được nó, tức là:

python -m pip install --upgrade --ignore-installed


0

Trên Mac, không có 3.7thư mục hoặc thư mục 3.7được sở hữu bởi root. Vì vậy, tôi đã xóa thư mục đó, tạo một thư mục mới cho người dùng hiện tại và di chuyển nó đến đó. Sau đó cài đặt kết thúc mà không có lỗi.

sudo rm -rf /Library/Python/3.7
mkdir 3.7
sudo mv 3.7 /Library/Python
ll /Library/Python/
pip3 install numpy

0

Điều này cũng xảy ra với tôi khi tôi cố gắng cài đặt opencv-pythongói:

nỗ lực cài đặt

Tôi có thể sửa nó bằng dòng lệnh

python3 -m pip install {name of package} --user

Khi tôi cố gắng cài đặt gói đã nói, lệnh sẽ trở thành:

python3 -m pip install opencv-python --user

Kết quả là:

kết quả


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.