Não foi possível instalar pacotes devido a um EnvironmentError: [Errno 13]


106

No meu terminal MacOS Mojave, eu queria instalar um pacote python com pip. No final, diz:

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.

Então, eu queria atualizar o pip com o comando fornecido, mas recebi um erro:

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.

Eu realmente não entendo o que fazer agora. Também percebi que diz Python 2.7 na mensagem de erro, mas tenho e quero usar apenas python 3.


6
Você leu: "Considere usar a --useropção ou verifique as permissões."?
Klaus D.

Eu apenas tentei, você está certo! Achei que fosse VERIFICAR as permissões e não DAR permissões. Obrigado!
Adler

2
Para instalar pacotes para python3, você precisa usar o pip3. Para atualizar o pip, execute como sudo se ocorrer erros de permissão.
BoboDarph


Respostas:


166

Se você quiser usar o python3 + para instalar os pacotes que você precisa usarpip3 install package_name

E para resolver o errno 13 você tem que adicionar--user no final

pip3 install package_name --user

EDITAR:

Para qualquer projeto em python é altamente recomendável trabalhar em um ambiente virtual , é uma ferramenta que ajuda a manter separadas as dependências exigidas por diferentes projetos criando ambientes virtuais python isolados para eles.

Para criar um com python3 +, você deve usar o seguinte comando:

virtualenv enviroment_name -p python3

E então você trabalha nisso apenas ativando -o:

source enviroment_name/bin/activate

Assim que o ambiente virtual for ativado, o nome do seu ambiente virtual aparecerá no lado esquerdo do terminal. Isso permitirá que você saiba que o ambiente virtual está ativo no momento. Agora você pode instalar dependências relacionadas ao projeto neste ambiente virtual apenas usando pip.

pip install package_name

2
Eu fiz isso, mas ainda estou tendo problemas. Eu instalei o frasco, mas ele ainda não pode ser encontrado no meu venv. O que eu posso fazer?
Leonard

Experimente virtualenv -p python3.8 enviroment_name Uso: virtualenv [OPÇÕES] DEST_DIR
Tommy Gibbons

1
Funciona perfeitamente. Obrigado!
Haardik Dharma de

23

Com relação ao comando de permissões, tente usar sudo na frente do comando do terminal:

sudo pip install --upgrade pip

Sudo permite que você execute o comando com os privilégios do superusuário e instalará o pacote para a instalação global do Python em todo o sistema. Idealmente, você deve criar um ambiente virtual para o projeto em que está trabalhando. Dê uma olhada nisso

Em relação ao python Tente executar o pip como um executável como este:

python3.6 -m pip install <package>

Não tenho certeza absoluta, mas executar esse tipo de comando com permissões de root geralmente não é a melhor ideia: depois de usar o sudo, o usuário mudará de "você" para "root", e isso pode levar a resultados indesejados. Por exemplo, as bibliotecas podem ser instaladas em / home / root em vez de / home / seunomedeusuario. Além disso, os arquivos serão criados em associação com o usuário / grupo raiz. Sudo é necessário apenas quando o comando deve salvar arquivos em pastas de sistema como / usr / local / bin! ;)
funder7

1
Sim, é verdade. Eu adicionei um comentário sobre isso
Dominique Paul

5

Eu estava cometendo os mesmos erros quando percebi que criei meu ambiente virtual como usuário root. Ele foi protegido contra gravação, portanto, verifique se seu ambiente virtual está protegido contra gravação. faça um novo venv e tente novamente


4

Recebi o mesmo erro ao tentar instalar um pacote (flask-classful).
Cometi o erro de instalar o anaconda como root. Mudei a propriedade da pasta anaconda instalada e pude instalar o pacote com sucesso.

Use o comando chowncom a opção -Rde alterar recursivamente a propriedade da pasta anaconda instalada da seguinte forma:

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

Aqui, proprietário é o seu nome de usuário e grupo é o nome do grupo.


3

A resposta está na mensagem de erro. No passado, você ou um processo fazia um sudo pipe que fazia com que alguns dos diretórios abaixo /Library/Python/2.7/site-packages/...tivessem permissões que os tornavam inacessíveis para o usuário atual.

Então você fez um pip install whateverque depende de outra coisa.

Então, para consertar, visite /Library/Python/2.7/site-packages / ... e encontre o diretório com as permissões root ou não-seu-usuário e remova e reinstale esses pacotes, ou apenas force a propriedade para o usuário a quem deve ter acesso.


1
simples e funcional. use $ whoami para saber qual usuário você é atualmente $ sudo chown username /Library/Python/2.7/site-packages/ then pip install any ... Você pode ter que usar chown recursivamente
Sunil Kumar

3

Eu tive o mesmo problema durante a instalação numpycom pip install numpy.

Então eu tentei

sudo -H pip3 install --upgrade pip

sudo -H pip3 install numpy

Isso funcionou bem para mim.

Explicação: A -Hopção (HOME) com sudodefine a variável de ambiente HOME para o diretório inicial do usuário de destino (root por padrão). Por padrão, o sudo não modifica o HOME.


3

Para MacOs e Unix

Apenas adicionando sudo ao comando funcionará, pois ele o executaria como um superusuário.

sudo pip install --upgrade pip

É aconselhável que você não deva fazer isso diretamente - por favor, veja esta postagem


1
Isso não é útil para usuários do Windows, e este erro é mais comum com usuários do Windows devido às permissões de operação do Windows. Além disso, os comandos devem ser colocados em blocos de código, quando não estão, torna-se difícil de ler
logos_164


1

Já tentei todas as sugestões postadas aqui, mas ainda estou recebendo o erro 13,

Estou usando o Windows e minha versão do python é 3.7.3

Após 5 horas tentando resolvê-lo, esta etapa funcionou para mim:

Tento abrir o prompt de comando executando como administrador


0

Eu também tive o mesmo problema, tentei várias linhas de comando diferentes, esta funcionou para mim:

Experimentar:

    conda install py-xgboost

Isso é o que eu tenho:

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

tente esta linha de comando abaixo para MacOS para verificar a permissão do usuário.

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

0

Tenho o anaconda instalado para o Python 3. Também tenho o Python2 no meu mac.

python --version

me dá

Python 3.7.3

python2.7 --version

me dá

Python 2.7.10

Eu queria instalar o pacote pyspark em python2, visto que ele já estava instalado em python3.

python2.7 -m pip install pyspark

me dá um erro

Não foi possível instalar pacotes devido a um EnvironmentError: [Errno 13] Permissão negada: '/Library/Python/2.7/site-packages/pyspark' Considere usar a --useropção ou verifique as permissões.

O comando abaixo resolveu. Graças a Deus não precisei fazer nenhuma alteração de configuração.

python2.7 -m pip install pyspark --user

Coletando o requisito do pyspark já satisfeito: py4j == 0.10.7 in /Library/Python/2.7/site-packages (do pyspark) (0.10.7) Instalando os pacotes coletados: pyspark Instalado com sucesso o pyspark-2.4.4 Você está usando o pip versão 18.1 , no entanto, a versão 19.3.1 está disponível. Você deve considerar a atualização por meio do comando 'pip install --upgrade pip'.


0

Eu tive problemas semelhantes em um venv em uma partição NTFS montada no Linux com todas as permissões corretas. Certificar-se de que o pip funcionou com --ignore instalado resolveu o problema, ou seja:

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


0

No Mac, não há 3.7diretório ou o diretório 3.7é propriedade de root. Portanto, removi esse diretório, criei um novo diretório pelo usuário atual e o movi para lá. Em seguida, a instalação termina sem erros.

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

0

Isso também acontece comigo quando tento instalar o opencv-pythonpacote:

tentativa de instalação

Eu posso consertar com linha de comando

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

Quando tento instalar o referido pacote, o comando se torna:

python3 -m pip install opencv-python --user

Resultando nisso:

resultado


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.