ImportError: Nenhum módulo denominado site no Windows

101

Estou tentando instalar o Python pela primeira vez. Baixei o seguinte instalador do site do Python: Python 2.7.1 Windows Installer (binário do Windows - não inclui a fonte) . Em seguida, executei o instalador, selecionei 'Todos os usuários' e estava tudo bem. Instalei o Python no local padrão:

C:\Python27

Em seguida, para testar se o Python foi instalado corretamente, naveguei até meu diretório Python e executei o comando "python" no prompt cmd do Windows. Ele me retorna o seguinte erro:

ImportError: Nenhum módulo denominado site

Quando eu faço 'python -v', obtenho o seguinte:

#installing zipimport hook
import zipimport # builtin
#installed zipimport hook
#ImportError: No module named site #clear builtin ._
#clear sys.path #clear sys.argv
#clear sys.ps1 #clear sys.ps2
#clear sys.exitfunc #clear sys.exc_type
#clear sys.exc_value #clear sys.exc_traceback
#clear sys.last_type #clear sys.last_value
#clear sys.last_traceback #clear sys.path_hooks
#clear sys.path_importer_cache #clear sys.meta_path
#clear sys.flags #clear sys.meta_path #clear sys.flat
#restore sys.stdin . restore sys.stdout
#restore sys.stderr #cleanup main
#cleanup [1 ] zipimport #cleanup [1] signal
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup builtin
#cleanup ints: 6 unfreed ints #cleanup floats

Quando eu faço dir C:\Python27\Lib\site.py*, obtenho o seguinte:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py * O
volume na unidade C não tem rótulo.
O número de série do volume é DAB9-A863

Diretório de C: \ Python27 \ Lib

13/11/2010 20:08 20.389 site.py
1 Arquivo (s) 20.389 bytes
0 Dir (s) 694.910.976 bytes livres

Alguma ideia?

Mimminito
fonte
Supondo que você não alterou o local de instalação padrão, o arquivo C: /Python27/Lib/site.py existe em seu computador?
Tim W.
Sim, site.py está localizado nessa pasta
Mimminito de
7
@Mimminito: Estou curioso (um pouco) por que você desapareceu por 9 meses e acabou de aceitar minha resposta, e (muito) se você já descobriu qual era o problema subjacente.
John Machin
Estou tendo esse problema atualmente. Não tenho ideia do porquê e vasculhei a internet em busca de uma solução. Ele continua dizendo ImportError: Nenhum módulo denominado site, não importa como eu instalei o python e o que coloquei em meus PATHs. Gostaria de saber como o python realmente carrega o site.py. Obviamente, este é um problema de caminho relativo / absoluto. E se eu pudesse apenas configurar o caminho do python diretamente, sem recorrer a golpes aleatórios no escuro.
CMCDragonkai
3
Eu tive esse problema. Eu estava invocando do Cygwin, que tinha o caminho do tipo unix para PYTHONPATH. Eu o converti em um caminho do estilo do Windows export PYTHONPATH=$(cygpath -w $PYTHONPATH)e ele funciona bem. Adicionando esta nota para ajudar outras pessoas que podem vir a esta página com o mesmo problema.
robert

Respostas:

145

Estou investigando esse problema há quase um dia e finalmente tive uma descoberta. Experimente isto:

  1. Definir as variáveis PYTHONPATH / PYTHONHOME

    Clique com o botão direito no ícone Computador no menu iniciar e vá para propriedades . Na guia esquerda, vá para Configurações avançadas do sistema . Na janela que aparece, vá para a guia Avançado e , na parte inferior, clique em Variáveis ​​de ambiente . Clique na lista de variáveis ​​de usuário e comece a digitar Python, e repita para Variáveis ​​de sistema , apenas para ter certeza de que você não tem variáveis ​​configuradas incorretamente para PYTHONPATH ou PYTHONHOME. Em seguida, adicione novas variáveis ​​(eu fiz em System em vez de User, embora possa funcionar para User também): PYTHONPATH, definido como C: \ Python27 \ Lib . PYTHONHOME, definido como C: \ Python27 .

Espero que isto ajude!

RenderCase
fonte
7
E você também precisa anexar% PYTHONHOME% à sua variável de caminho para que isso funcione.
Rishi de
7
Aha! Esta deve ser a resposta à pergunta. Para mim, era uma variável PYTHONHOME definida para um caminho inválido ... Removido isso, e agora FUNCIONA! Parece que o mod Alien Swarm do Steam adicionou isso.
Timotei
2
Não PYTHONPATH/PYTHONHOMEdeve ser necessário definir nenhuma variável para que o Python localize o site.pymódulo colocado na Libpasta. Essa resposta é, na melhor das hipóteses, uma solução alternativa.
Piotr Dobrogost
3
Variáveis ​​de ambiente são um pesadelo. Eu culpo o Linux.
Damien
1
Certifique-se de que você não tem duas versões do Python instaladas simultaneamente. Isso pode bagunçar o interpretador, se Python 2.7 for o primeiro em% PATH% e Python3 for definido como PYTHONHOME, por exemplo.
LM.Croisez
41

Solução rápida: defina PYTHONHOME e PYTHONPATH e inclua PYTHONHOME em PATH

Por exemplo, se você instalou em c: \ Python27

set PYTHONHOME=c:\Python27
set PYTHONPATH=c:\Python27\Lib
set PATH=%PYTHONHOME%;%PATH%

Certifique-se de não ter um '\' final nos vars PYTHON *, isso parece quebrá-lo também.

slckin
fonte
3
Se estiver no Windows 10, agora é: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto
Isso funcionou bem para mim no Windows 7 com Python 3.6
Sede de Conhecimento
12

Eu estava tendo esse problema depois de instalar o Windows Python e o Cygwin Python e tentar executar o Cygwin Python no Cygwin. Eu resolvi isso exporting PYTHONHOME = / usr / e PYTHONPATH = / usr / lib / python2.7

Jorge Vargas
fonte
12

Certifique-se de que sua variável de ambiente PYTHONHOME esteja definida corretamente. Você receberá esse erro se PYTHONHOME estiver apontando para um local inválido ou para outra instalação do Python que você está tentando executar.

Experimente isto:

C:\>set PYTHONHOME=C:\Python27
C:\>python

Usar

setx PYTHONHOME C:\Python27

para definir isso permanentemente para prompts de comando subsequentes

Mika
fonte
6
Use setx PYTHONHOME C:\Python27para definir isso permanentemente para prompts de comando subsequentes. Caso contrário, você deve usar o comando set todas as vezes.
Iain Samuel McLean Ancião
5

Localize site.py e adicione seu caminho em PYTHONPATH . Isto irá resolver o seu problema.

DigviJay Patil
fonte
4

Você está tentando executar o Windows Python no Cygwin? Estou tendo o mesmo problema. Python no Cygwin falha ao importar o site. Python em Cmd funciona.

Parece que você precisa executar PYTHONHOME e PYTHONPATH cygwin -awpara torná-los caminhos do Windows. Além disso, o python parece estar usando alguns caminhos incorretos.

Acho que vou precisar instalar o python através do cygwin para fazê-lo funcionar.

idbrii
fonte
1
Olá, provavelmente isso não é um problema para você, mas caso outras pessoas venham com esse problema, veja meu comentário sobre a questão principal. Basicamente, você precisa converter PYTHONPATHpara um caminho no estilo do Windows com export PYTHONPATH=$(cygpath -w $PYTHONPATH).
robert
4

Para o Windows 10 (acompanhamento da resposta @slckin), isso pode ser definido por meio da linha de comando com:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"
Vesanto
fonte
6
Eu nunca usaria setx PATH "%PYTHONHOME%;%PATH%"porque define o usuário PATHcom a soma do caminho do usuário e do sistema. Está tudo bem localmente (usando set), mas não usandosetx
Jean-François Fabre
4

No meu caso, o problema era outro arquivo site.py, que foi resolvido antes do Python \ Lib, devido à configuração do PATH.

Ambiente: Windows 10 Pro, Python27.

Minha área de trabalho tem o pgAdmin instalado, que contém o arquivo C: \ Arquivos de programas (x86) \ pgAdmin \ venv \ Lib \ site.py. Como a variável de ambiente PATH tinha a página inicial do pdAdmin antes do Python (aparentemente uma má ideia em primeiro lugar), o site.py do pgAdmin foi encontrado primeiro.

Tudo que eu tive que fazer para corrigir o problema foi mover a casa do pgAdmin depois do Python, em PATH

Ivan C
fonte
3

Para mim, aconteceu porque eu tinha 2 versões do python instaladas - python 27 e python 3.3. Ambas as pastas tinham uma variável de caminho definida e, portanto, havia esse problema. Para corrigir isso, movi o python27 para a pasta temporária, pois estava ok com o python 3.3. Portanto, verifique as variáveis ​​de ambiente como PATH, PYTHONHOME, pois pode ser um problema. Obrigado.

kinshuk4
fonte
1

Se alguém descobrir que ainda não está funcionando para usuários que não são administradores:

Erro de exemplo:

ImportError: No module named iso8601

você precisa definir a opção '--always-unzip' para easy_install:

easy_install --always-unzip python-keystoneclient

Ele descompactará seus arquivos egg e permitirá a importação para encontrá-los.

Noma4i
fonte
1

Passei pelo mesmo problema de ImportError: No module named siteao instalar o python 2.7.11

Inicialmente, eu tinha o Python2.5 e o caminho PYTHONHOME foi definido como Python2.5. Mudei o nome para C:\Python27\e ele resolveu o problema.

Debashish
fonte
0

Você pode tentar o Open Source Active Python Setup, que é um instalador Python bem executado para Windows. Você só precisa desinstalar sua versão e instalá-la ...

philnext
fonte
7
O instalador do python.org está ótimo
David Heffernan,
Eu instalei o Active Python no meu laptop e ele foi instalado perfeitamente. Mas não funciona no meu PC, continuo
recebendo
0

Votei na resposta do slckin. Meu problema era que eu era atencioso e adicionava aspas duplas nos caminhos. Removi as aspas duplas em todas as três variáveis: PYTHONHOME, PYTHONPATH e PATH. Observe que isso estava em um arquivo cmd ou bat para configurar o ambiente para outras ferramentas. No entanto, as aspas duplas podem ser úteis em uma configuração de ícone. Digitando

conjunto

revelou que as aspas estavam no caminho e não caíram como esperado. Eu também encurtei o PATH para que tivesse menos de 256 caracteres.

Greg
fonte
-1

Tenho um aplicativo que depende muito do Python e me mantive atualizado com o python 2.7.x conforme novas versões são lançadas. Tudo estava bem até 2.7.11, quando recebi o mesmo No module named siteerro " ". Configurei PYTHONHOME como c:\Python27e está funcionando. Mas o mistério permanece por que isso agora é necessário quando não era com versões anteriores. E, se for necessário, por que o instalador não define esta var?

Dave Lawrence
fonte
-1

Eu tive o mesmo problema. Minha solução foi reparar a instalação do Python. (Era uma instalação nova, então não esperava um problema, mas agora está resolvido.)

Para reparar (Windows 7):

  1. vá para Painel de Controle -> Programas -> Programas e Recursos
  2. clique na versão do Python instalada e pressione Desinstalar / Alterar.
  3. siga as instruções para reparar a instalação.
Reintegrar Monica - Goodbye SE
fonte
-3

Instale o yaml a partir da página inicial do PyYAMLe: http://www.pyyaml.org/wiki/PyYAML

Selecione a versão apropriada para seu sistema operacional e Python.

CLead1000
fonte