Depois de instalar o mecanize , não consigo importá-lo.
Tentei instalar a partir do pip, easy_install e através python setup.py install
deste repositório: https://github.com/abielr/mechanize . Tudo isso sem sucesso, pois cada vez que entro no meu interativo Python, recebo:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
As instalações que eu executei anteriormente relataram que foram concluídas com êxito, portanto, espero que a importação funcione. O que poderia estar causando esse erro?
easy_install
? Além disso, confirme o caminho completoeasy_install
,pip
e depython
.sys.path
se está procurando nos lugares certos,ls -laR /usr/local/lib/python2.7/dist-packages/mech*
verificar se há problemas de permissão e procurarimp.find_module("mechanize")
distinguir entre os erros não consegue encontrar e não consegue sobreviver na importação?Respostas:
No meu caso, é problema de permissão. De alguma forma, o pacote foi instalado apenas com permissão root rw, outro usuário não pode fazer o rw!
fonte
sudo pip install ...
. Correção simples:sudo chmod -R ugo+rX /lib/python2.7/site-packages/
sudo chmod 777 /usr/local/lib/python3.6/site-packages
fez o truqueEu tive o mesmo problema: o script com
import colorama
estava jogando e ImportError, massudo pip install colorama
estava me dizendo "pacote já instalado".Minha solução: executar pip sem sudo :
pip install colorama
. Então o pip concordou que precisava ser instalado, instalado e meu script foi executado.Meu ambiente é o Ubuntu 14.04 de 32 bits; Acho que vi isso antes e depois de ativar meu virtualenv.
ATUALIZAÇÃO : melhor ainda, use
python -m pip install <package>
. O benefício disso é que, como você está executando a versão específica do python em que deseja o pacote, o pip instalará inequivocamente o pacote no python "correto". Novamente, não use o sudo nesse caso ... então você obtém o pacote no lugar certo, mas possivelmente com permissões de root (indesejadas).fonte
É o problema do caminho do python.
No meu caso, tenho o python instalado em:
e não há diretório de pacotes de sites no python2.6.
O pacote (SOAPpy) que eu instalei pelo pip está localizado
E o site-package não está no caminho do python, tudo o que fiz foi adicionar pacotes de sites ao PYTHONPATH permanentemente.
No arquivo de texto que aparece, adicione esta linha no final:
exportar PYTHONPATH = $ PYTHONPATH: /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
fonte
O mecanismo de importação do Python funciona, realmente, então:
fonte
sudo pip install
foi instalada com privs raiz e, no momento da importação, algo está bombardeando a falta de acesso de leitura ou gravação.Eu tenho batido minha cabeça no meu monitor até que um estagiário jovem me disse que o segredo é "python setup.py install" dentro do diretório do módulo.
Por alguma razão, executar a instalação a partir daí faz funcionar.
Para ficar claro, se o nome do seu módulo for "foo":
Se você tentar executar o setup.py a partir de qualquer outro diretório, chamando seu caminho, você terminará com uma instalação com bork.
NÃO FUNCIONA:
FUNCIONA:
fonte
Consegui corrigir esse problema com uma abordagem combinada. Primeiro, segui o conselho de Chris, abri uma linha de comando e digitei 'pip show packagename'. Isso fornecia a localização do pacote instalado.
Em seguida, abri o python e digitei 'import sys' e, em seguida, 'sys.path' para mostrar onde o python pesquisa os pacotes importados. Infelizmente, o local mostrado na primeira etapa NÃO estava na lista.
Etapa final, digitei 'sys.path.append (' package_location_seen_in_step_1 '). Opcionalmente, você pode repetir a etapa dois para ver a localização agora na lista.
Etapa do teste, tente importar o pacote novamente ... funciona.
A desvantagem? É temporário e você precisa adicioná-lo à lista sempre.
fonte
Eu encontrei isso ao tentar usar o chaveiro que eu instalei via
sudo pip install keyring
. Como mencionado nas outras respostas, é um problema de permissões no meu caso.O que funcionou para mim:
sudo pip uninstall keyring
-H
opção do sudo e reinstalei o chaveiro:sudo -H pip install keyring
Espero que isto ajude.
fonte
Eu sou novo no python. Corrigi esse problema alterando o caminho do intérprete do projeto.
File -> Settings -> Project -> Project Interpreter
fonte
Não consegui que meu PYTHONPATH funcionasse corretamente. Percebi que a adição
export
corrigiu o problema:(funcionou)
vs.
(não funcionou)
fonte
No meu caso, eu corri
pip install Django==1.11
e não importaria dopython
intérprete.Navegando pelos comandos do pip, achei o
pip show
seguinte:Observe que o local diz '3,4'. Eu descobri que o
python
comando-estava vinculado apython2.7
Ao lado disso, encontrei um link chamado,
python3
então usei isso. Você também pode alterar o link parapython3.4
. Isso também resolveria.fonte
No meu caso, havia um problema com um arquivo init .py ausente no módulo, que eu queria importar em um ambiente Python 2.7.
O Python 3.3+ possui pacotes de espaço para nome implícito que permitem criar pacotes sem um arquivo .py de init .
fonte
Se as outras respostas mencionadas não funcionarem, tente excluir o cache do pip e reinstalar o pacote. Minha máquina roda o Ubuntu14.04 e estava localizada em
~/.cache/pip
. A exclusão desta pasta fez o truque para mim.fonte
Além disso, certifique-se que você não confunda
pip3
compip
. O que descobri foi que o pacote instaladopip
não estava funcionandopython3
e vice-versa.fonte
Quando você instala via
easy_install
oupip
, ele está sendo concluído com êxito? Qual é a saída completa? Qual instalação python você está usando? Pode ser necessário usarsudo
antes do comando de instalação, se você estiver instalando módulos em um diretório do sistema (se estiver usando a instalação do sistema python, talvez). Não há muitas informações úteis na sua pergunta, mas algumas ferramentas que provavelmente ajudarão incluem:echo $PYTHONPATH
e / ouecho $PATH
: ao importar módulos, o Python pesquisa uma dessas variáveis de ambiente (listas de diretórios,:
delimitadas) pelo módulo que você deseja. Os problemas de importação geralmente ocorrem devido à ausência do diretório correto nessas listaswhich python
,,which pip
ouwhich easy_install
: eles informarão a localização de cada executável. Pode ajudar a saber.Use virtualenv , como @JesseBriggs sugere. Ele funciona muito bem
pip
para ajudá-lo a isolar e gerenciar os módulos e o ambiente de projetos Python separados.fonte
Eu tive esse problema exato, mas nenhuma das respostas acima funcionou. Isso me deixou louco até que notei que o sys.path era diferente depois que eu havia importado do projeto pai. Aconteceu que eu havia usado o importlib para escrever uma pequena função para importar um arquivo que não estava na hierarquia do projeto. Má ideia: esqueci que tinha feito isso. Pior ainda, o processo de importação foi afetado pelo sys.path - e o deixou assim. Muito má ideia.
A solução foi parar com isso e simplesmente colocar o arquivo que eu precisava importar no projeto. Outra abordagem seria colocar o arquivo em seu próprio projeto, pois ele precisa ser reconstruído de tempos em tempos, e a reconstrução pode ou não coincidir com a reconstrução do projeto principal.
fonte
Eu tive esse problema com o 2.7 e 3.5 instalado no meu sistema tentando testar um bot de telegrama com o Python-Telegram-Bot .
Não consegui fazê-lo funcionar após a instalação com o pip e o pip3, com o sudo ou sem. Eu sempre consegui:
A leitura correta da mensagem de erro informa que o python está procurando no diretório atual por um
telegram.py
. E, certo, eu tinha um script lá chamado telegram.py e isso foi carregado pelo python quando ligueiimport
.Conclusão, verifique se você não possui nenhum
package.py
no seu diretório de trabalho atual ao tentar importar. (E leia a mensagem de erro completamente).fonte
Eu tive um problema semelhante (no Windows) e a causa raiz no meu caso foi software ANTIVIRUS ! Possui o recurso "Auto-contenção", que envolve o processo em execução com algum tipo de máquina virtual. Os sintomas são:
pip install somemodule
funciona bem em uma janela de linha cmd eimport somemodule
falha quando executado a partir de outro processo com o erroEspero que poupe algum tempo a alguém :)
fonte
Talvez um pouco fora de tópico, mas eu tinha problemas para
import PyYAML
. Salienta que você precisaimport yaml
. (acho que é um rtfm clássico ...)fonte
Eu tive um problema semelhante ao usar o Django. No meu caso, eu poderia importar o módulo do shell do Django, mas não de um .py que importou o módulo.
O problema era que eu estava executando o servidor Django (portanto, executando o .py) de um virtualenv diferente da qual o módulo havia sido instalado.
Em vez disso, a instância do shell estava sendo executada no virtualenv correto. Por isso, por que funcionou.
fonte
Isso funciona!!!
Isso geralmente acontece quando o módulo é instalado em uma versão mais antiga do python ou em outro diretório, não se preocupe, pois a solução é simples. - módulo de importação do diretório em que o módulo está instalado. Você pode fazer isso importando primeiro o
sys
módulo python e depois importando do caminho em que o módulo está instaladofonte
A maioria dos casos possíveis já foi abordada em soluções, apenas compartilhando meu caso; aconteceu comigo que instalei um pacote em um ambiente (por exemplo
X
) e estava importando o pacote em outro ambiente (por exemploY
). Portanto, sempre verifique se está importando o pacote do ambiente em que o instalou.fonte
Algo que funcionou para mim foi:
O comando não requer sudo. Isso foi testado no OSX Mojave.
fonte
No meu caso, também tive que instalar o (s) módulo (s) para o superusuário.
Aparentemente, o superuso não pode acessar os arquivos normais dos usuários sob certas circunstâncias.
fonte
Para mim, era garantir a versão do módulo alinhada com a versão do Python que eu estava usando. Construí a imagem em uma caixa com o Python 3.6 e, em seguida, injetei em uma imagem do Docker que tinha 3.7 instalada e depois bati na minha cabeça quando o Python estava me dizendo que o módulo não estava instalado ...
36m
para Python 3.6bsonnumpy.cpython-36m-x86_64-linux-gnu.so
37m
para Python 3.7bsonnumpy.cpython-37m-x86_64-linux-gnu.so
fonte
pip install
a versão que corresponde à versão do Python que você está usando. Que erro você recebe e qual é o resultado depython --version
Eu sei que este é um post super antigo, mas para mim, eu tive um problema com um python de 32 bits e um python de 64 bits instalado. Depois de desinstalar o python de 32 bits, tudo funcionou como deveria.
fonte
Resolvi meu problema de que as mesmas bibliotecas estavam funcionando bem em um projeto (A), mas a importação dessas mesmas bibliotecas em outro projeto (B) causou erro. Estou usando o Pycharm como IDE no sistema operacional Windows. Então, depois de tentar muitas soluções em potencial e não conseguir resolver o problema, fiz essas duas coisas (pasta "Venv" excluída e intérprete reconfigurado):
1-No projeto (B), havia uma pasta chamada ("venv"), localizada em Bibliotecas Externas /. Eu apaguei essa pasta.
A etapa 2 (excluir a pasta "venv") causa erro na configuração do interpretador Python e é exibida uma mensagem na parte superior da tela dizendo "Intérprete python inválido selecionado para o projeto" e "configurar intérprete python", selecione esse link e ele abre uma nova janela. Na lista suspensa "Intérprete do projeto", há uma linha vermelha mostrando o intérprete inválido anterior. Agora, abra esta lista e selecione o interpretador Python (no meu caso, é Python 3.7). Pressione "Aplicar" e "OK" na parte inferior e você está pronto para ir.
Nota: era potencialmente o problema em que o ambiente virtual do meu projeto (B) não reconhecia as bibliotecas já instaladas e em funcionamento.
fonte
Se você estiver usando um ambiente virtual, use em
pipenv install <module name>
vez depip install <module name>
Trabalhou para mim.
fonte
Também tive esse problema .. o pacote foi instalado no Python 3.8.0, mas o VS Code estava executando meu script usando uma versão mais antiga (3.4)
conserte no terminal:
py .py
Certifique-se de instalar o pacote na versão correta do Python
fonte
Como um amigo fez por mim hoje, aqui está o que me ajudou (estou usando o Windows):
Pressione 'Setting' -> 'Project' -> 'Project Interpreter'. Aqui na janela à direita, há uma linha com o título 'Project Interpreter' à esquerda. Clique nesta linha e ela abrirá várias linhas adicionais.
Agora pressione a linha 'Mostrar tudo'. Uma janela será aberta. Nesta janela, pressione o pequeno sinal de '+' no canto superior direito.
Uma nova janela se abrirá. À esquerda, existem 4 guias, pressione a mais superior, que diz 'Ambiente Virtualenv'. Agora, na janela à direita, marque a opção 'Ambiente existente'. A linha 'Intérprete' ficará bem visível. Pressione o botão '...' à direita da linha.
Agora, uma janela de navegação será aberta. Navegue até o diretório em que você instalou o próprio Python . Não é aquele com PyCharm. Quando chegar lá, escolha o arquivo 'python.exe' e pressione OK (a janela desaparecerá).
Pressione OK novamente (esta janela também desaparecerá).
Agora nesta janela, verifique se a nova linha que você criou está marcada e pressione OK novamente.
Agora, todos os pacotes instalados devem estar visíveis no interpretador do projeto e são lidos pelo seu programa.
fonte
Solução mais simples que funcionou para mim e que não vejo mencionada neste tópico:
Eu tenho várias versões do Python instaladas, mas estava tentando usar o Python3.7 - então tive que usar:
sudo pip3.7 install <package>
fonte