Estou trabalhando no mac OS X Yosemite, versão 10.10.3.
Instalei python2.7 e pip usando macport conforme feito em http://johnlaudun.org/20150512-installing-and-setting-pip-with-macports/
Posso instalar pacotes com sucesso e importá-los dentro do meu ambiente Python e scripts Python. No entanto, nenhum executável associado a um pacote que pode ser chamado a partir da linha de comando no terminal foi encontrado.
Alguém sabe o que pode estar errado? (Mais detalhes abaixo)
Por exemplo, ao instalar um pacote chamado "rosdep" conforme instruído em http://wiki.ros.org/jade/Installation/Source
Posso executar: sudo pip install -U rosdep
que instala sem erros e os arquivos correspondentes estão localizados em/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
No entanto, se eu tentar executar sudo rosdep init
:, ocorrerá um erro:"sudo: rosdep: command not found"
Este não é um erro específico do pacote. Eu recebo isso para qualquer pacote instalado usando pip no meu computador. Eu até tentei adicionar
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
para o meu $PATH
. Mas os executáveis não são encontrados na linha de comando, embora os pacotes funcionem perfeitamente dentro do python.
Respostas:
verifique o seu $ PATH
tox
tem um modo de linha de comando:Cadê?
(editar: as
2.7
coisas não importam muito aqui, sub em qualquer3.x
e pip se comportando da mesma maneira)e o que está em meu $ PATH?
Observe o /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin ? Isso é o que permite encontrar minhas coisas instaladas no pip
Agora, para ver de onde vêm as coisas do Python, tente fazer isso (substituir
rosdep
portox
).que imprime:
Agora cd para o diretório acima
lib
no diretório acima. Você vê um diretório bin ? Você vêrosdep
nessa lixeira? Nesse caso, tente adicionar obin
ao seu $ PATH.resultado:
fonte
rosdep
é consistente com o seu problema. meu ponto é que você precisa descobrir onde orosdep
está instalado e como $ PATH se parece.which
(se ainda não estiver em seu caminho), você também pode tentar encontrar o binário usandomlocate
no linux oumdfind
no macOS.No macOS com a instalação padrão do python, você precisa adicionar
/Users/<you>/Library/Python/2.7/bin/
ao $ PATH.Adicione isso ao seu .bash_profile:
É onde o pip instala os executáveis.
Dica: para a versão não padrão do Python,
which python
encontre o local da instalação do Python e substitua essa parte no caminho acima. (Obrigado pela dica Sanket_Diwale)fonte
which python3
me levou eventualmente (através de um link) para/Library/Frameworks/Python.framework/Versions/3.6/bin/
.Se você estiver instalando usando
--user
(por exemplopip3.6 install --user tmuxp
), é possível obter o diretório de instalação do usuário específico da plataforma do próprio Python usando osite
módulo . Por exemplo, no macOS:Ao anexar
/bin
a isso, agora temos o caminho onde os executáveis do pacote serão instalados. Podemos preencher dinamicamente o PATH no arquivo rc do shell com base na saída; Estou usando o bash, mas com sorte isso é portátil:Eu uso as versões precisas do Python para reduzir a chance dos executáveis simplesmente "desaparecerem" quando o Python atualiza uma versão secundária, por exemplo, de 3.5 para 3.6. Eles vão desaparecer porque, como pode ser visto acima, o caminho de instalação do usuário pode incluir a versão Python. Portanto, embora
python3
possa apontar para 3,5 ou 3,6,python3.6
sempre apontará para 3,6. Isso precisa ser mantido em mente ao instalar outros pacotes, por exemplo, usepip3.6
overpip3
.Se você não se importa com a ideia de pacotes desaparecendo, você pode usar
python2
e, empython3
vez disso:fonte
Eu sei que a pergunta é sobre macOS, mas aqui está uma solução para usuários Linux que chegam aqui via Google.
Eu estava tendo o problema descrito nesta questão, tendo instalado o pacote pdfx via pip.
Porém, quando o executei, nada ...
Ainda:
O problema no Linux é que os
pip install ...
scripts são inseridos~/.local/bin
e não no Debian / Ubuntu padrão$PATH
.Aqui está um problema do GitHub com mais detalhes: https://github.com/pypa/pip/issues/3813
Para corrigir, basta adicionar
~/.local/bin
ao seu$PATH
, por exemplo, adicionando a seguinte linha ao seu.bashrc
arquivo:Depois disso, reinicie seu shell e tudo deve funcionar como esperado.
fonte
source ~/.bashrc
recarregar a.bashrc
configuraçãoSolução
Com base em outras respostas, para
linux
emac
você pode executar o seguinte:em vez de
python3
você pode usar qualquer outro link para a versão python:python
,python2.7
,python3.6
,python3.9
, etc.Explicação
Para saber onde os pacotes do usuário estão instalados no SO atual (win, mac, linux), executamos:
Sabemos que os scripts vão para a
bin/
pasta onde os pacotes estão instalados.Portanto, concatenamos os caminhos:
Em seguida, exportamos isso para uma variável de ambiente.
Finalmente, para evitar a repetição do comando export o adicionamos ao nosso
.bashrc
arquivo e corremossource
para executar as novas alterações, dando-nos a solução sugerida mencionada no início.fonte
No Windows, você precisa adicionar o caminho
%USERPROFILE%\AppData\Roaming\Python\Scripts
ao seu caminho.fonte
Eu tropecei nessa questão porque criei, construí e publiquei com sucesso um pacote PyPI, mas não consegui executá-lo após a instalação. o
$PATH
variável foi definida corretamente.No meu caso, o problema é que não configurei o
entry_point
nosetup.py
arquivo:fonte
Além de adicionar o
bin
diretório do python à$PATH
variável, também tive que mudar o proprietário desse diretório para que funcionasse. Não tenho ideia de por que eu já não era o dono.fonte
Quando você instala Python ou Python3 usando o instalador do MacOS (baixado do site do Python) - adiciona um
export
er ao seu~/.profile
script. Tudo que você precisa fazer é apenassource
isso. Reiniciar todos os terminais também deve resolver.AVISO - eu acredito que é melhor apenas usar pip3 com Python3 - para benefícios futuros.
Se você já instalou o Python3, as seguintes etapas funcionam para mim no macOS Mojave:
Instale primeiro ansible usando
sudo
-sudo -H pip3 install ansible
você cria um link simbólico para o
bin
caminho do Pythonsudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin /Library/Frameworks/Python.framework/current_python_bin
e grampeá-lo para
.profile
export PATH=$PATH:/Library/Frameworks/Python.framework/current_python_bin
execute
source ~/.profile
e reinicie todos os shells do terminal.Tipo
ansible --version
fonte