ImportError: ningún módulo con nombre de sitio en Windows

101

Estoy intentando instalar Python por primera vez. Descargué el siguiente instalador del sitio web de Python: Python 2.7.1 Windows Installer (binario de Windows, no incluye la fuente) . Luego ejecuté el instalador, seleccioné 'Todos los usuarios' y todo estuvo bien. Instalé Python en la ubicación predeterminada:

C:\Python27

A continuación, para probar que Python se instaló correctamente, navegué a mi directorio de Python y ejecuté el comando "python" en el indicador de Windows cmd. Me devuelve el siguiente error:

ImportError: ningún módulo llamado sitio

Cuando hago 'python -v' obtengo lo siguiente:

#installing zipimport hook
import zipimport # builtin
#installed zipimport enganchar
#ImportError: No module named site #clear incorporado ._
#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.float_info
#restore sys.stdin # restaurar sys.stdout
#restore sys.stderr #cleanup principal
#cleanup [1 ] zipimport #cleanup [1] señal
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup incorporado
#cleanup ints: 6 unfreed ints #cleanup flotadores

Cuando hago dir C:\Python27\Lib\site.py*, obtengo lo siguiente:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py * El
volumen en la unidad C no tiene etiqueta.
El número de serie del volumen es DAB9-A863

Directorio de C: \ Python27 \ Lib

13/11/2010 20:08 20,389 site.py
1 Archivo (s) 20,389 bytes
0 Dir (s) 694,910,976 bytes libres

¿Algunas ideas?

Mimminito
fuente
Suponiendo que no cambió la ubicación de instalación predeterminada, ¿existe el archivo C: /Python27/Lib/site.py en su computadora?
Tim W.
Sí, site.py se encuentra en esa carpeta
Mimminito
7
@Mimminito: Tengo curiosidad (levemente) por qué desapareciste durante 9 meses y acabas de aceptar mi respuesta, y (en gran medida) si alguna vez descubriste cuál era el problema subyacente.
John Machin
Actualmente tengo este problema. No tengo idea de por qué y he buscado en Internet una solución. Sigue diciendo ImportError: Ningún módulo llamado sitio, no importa cómo instale Python y lo que ponga en mis PATH. Me gustaría saber cómo Python carga realmente site.py. Obviamente, este es un problema de ruta relativa / absoluta. Y si pudiera configurar la ruta de Python directamente sin recurrir a puñaladas aleatorias en la oscuridad.
CMCDragonkai
3
Tuve este problema. Invocaba desde Cygwin, que tenía la ruta similar a unix para PYTHONPATH. Lo convertí a una ruta de estilo de Windows con export PYTHONPATH=$(cygpath -w $PYTHONPATH)y funciona bien. Agregar esta nota para ayudar a otras personas que pueden llegar a esta página con el mismo problema.
robert

Respuestas:

145

He estado investigando este problema por mí mismo durante casi un día y finalmente logré un gran avance. Prueba esto:

  1. Configuración de las variables PYTHONPATH / PYTHONHOME

    Haga clic con el botón derecho en el icono de la computadora en el menú de inicio , vaya a propiedades . En la pestaña izquierda, vaya a Configuración avanzada del sistema . En la ventana que aparece, vaya a la pestaña Avanzado , luego, en la parte inferior, haga clic en Variables de entorno . Haga clic en la lista de variables de usuario y comience a escribir Python, y repita para variables del sistema , solo para asegurarse de que no tenga variables mal configuradas para PYTHONPATH o PYTHONHOME. A continuación, agregue nuevas variables (lo hice en Sistema en lugar de Usuario, aunque también puede funcionar para Usuario): PYTHONPATH, configurado en C: \ Python27 \ Lib . PYTHONHOME, establecido en C: \ Python27 .

¡Espero que esto ayude!

RenderCase
fuente
7
Y también debe agregar% PYTHONHOME% a su variable de ruta para que esto funcione.
Rishi
7
¡Ajá! Esta debería ser la respuesta a la pregunta. Para mí, era una variable PYTHONHOME establecida en una ruta no válida ... ¡Se eliminó eso, y ahora FUNCIONA! Parece que el mod Alien Swarm de Steam agregó eso.
Timotei
2
No PYTHONPATH/PYTHONHOMEdebería ser necesario configurar ninguna de las variables para que Python ubique el site.pymódulo colocado en la Libcarpeta. Esta respuesta es una solución alternativa en el mejor de los casos.
Piotr Dobrogost
3
Las variables ambientales son una pesadilla. Yo culpo a Linux.
Damien
1
Asegúrese de no tener dos versiones de Python instaladas simultáneamente. Esto podría afectar al intérprete, si Python 2.7 es el primero en% PATH% y Python3 está configurado para PYTHONHOME, por ejemplo.
LM.Croisez
41

Solución rápida: configure PYTHONHOME y PYTHONPATH e incluya PYTHONHOME en PATH

Por ejemplo, si instaló en c: \ Python27

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

Asegúrese de no tener un '\' al final en las vars PYTHON *, esto parece romperlo también.

slckin
fuente
3
Si en Windows 10, esto es ahora: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto
Esto funcionó para mí bien en Windows 7 con Python 3.6
Sed de conocimiento
12

Tuve este problema después de instalar Windows Python y Cygwin Python, e intenté ejecutar Cygwin Python desde Cygwin. Lo resolví exporting PYTHONHOME = / usr / y PYTHONPATH = / usr / lib / python2.7

Jorge Vargas
fuente
12

Asegúrese de que su variable de entorno PYTHONHOME esté configurada correctamente. Recibirá este error si PYTHONHOME apunta a una ubicación no válida oa otra instalación de Python que está intentando ejecutar.

Prueba esto:

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

Utilizar

setx PYTHONHOME C:\Python27

para configurar esto permanentemente para los siguientes comandos

Mika
fuente
6
Úselo setx PYTHONHOME C:\Python27para configurarlo de forma permanente para los siguientes comandos. De lo contrario, debe usar el comando set cada vez.
Iain Samuel McLean Elder
5

Busque site.py y agregue su ruta en PYTHONPATH . Esto resolverá su problema.

DigviJay Patil
fuente
4

¿Está intentando ejecutar Windows Python desde Cygwin? Estoy teniendo el mismo problema. Python en Cygwin no puede importar el sitio. Python en Cmd funciona.

Parece que debe asegurarse de ejecutar PYTHONHOME y PYTHONPATH cygwin -awpara convertirlos en rutas de Windows. Además, Python parece estar usando algunas rutas incorrectas.

Creo que tendré que instalar Python a través de cygwin para que funcione.

idbrii
fuente
1
Hola, esto probablemente no sea todavía un problema para ti, pero en caso de que otras personas vengan con este problema, mira mi comentario sobre la pregunta principal. Básicamente, necesita convertir PYTHONPATHa una ruta de estilo de Windows con export PYTHONPATH=$(cygpath -w $PYTHONPATH).
robert
4

Para Windows 10 (siga la respuesta de @slckin), esto se puede configurar a través de la línea de comando con:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"
Vesanto
fuente
6
Yo no usar setx PATH "%PYTHONHOME%;%PATH%"ya que establece el usuario PATHcon la suma de ruta del sistema de usuario y. Está bien localmente (usar set) pero no usarsetx
Jean-François Fabre
4

En mi caso, el problema fue otro archivo site.py, que se resolvió antes que el de Python \ Lib, debido a la configuración de PATH.

Entorno: Windows 10 Pro, Python27.

Mi escritorio tiene instalado pgAdmin, que tiene el archivo C: \ Archivos de programa (x86) \ pgAdmin \ venv \ Lib \ site.py. Debido a que la variable de entorno PATH tenía la casa de pdAdmin antes que Python (aparentemente una mala idea en primer lugar), se encontró el site.py de pgAdmin primero.

Todo lo que tuve que hacer para solucionar el problema fue mover la casa de pgAdmin más tarde que Python, en PATH

Iván C
fuente
3

Para mí, sucedió porque tenía 2 versiones de python instaladas: python 27 y python 3.3. Ambas carpetas tenían una variable de ruta establecida y, por lo tanto, existía este problema. Para solucionar esto, moví python27 a la carpeta temporal, ya que estaba bien con Python 3.3. Por lo tanto, verifique las variables de entorno como PATH, PYTHONHOME, ya que puede ser un problema. Gracias.

kinshuk4
fuente
1

Si alguien descubre que todavía no funciona con usuarios que no son administradores:

Error de ejemplo:

ImportError: No module named iso8601

debe configurar la opción '--always-unzip' para easy_install:

easy_install --always-unzip python-keystoneclient

Descomprimirá sus archivos de huevo y permitirá que la importación los encuentre.

Noma4i
fuente
1

Pasé por el mismo problema ImportError: No module named siteal instalar Python 2.7.11

Inicialmente tenía Python2.5 y la ruta PYTHONHOME estaba configurada en Python2.5. Le cambié el nombre a C:\Python27\y resolvió el problema.

Debashish
fuente
0

Puede probar la configuración de Python activa de código abierto, que es un instalador de Python bien hecho para Windows. Solo tienes que desinstalar tu versión e instalarla ...

philnext
fuente
7
El instalador de python.org está bien
David Heffernan
Instalé Active Python en mi computadora portátil, y esto se instaló bien. Pero no funciona en mi PC, sigo recibiendo el mismo error
Mimminito
0

Voté la respuesta de Slckin. Mi problema fue que estaba pensativo y agregué comillas dobles alrededor de los caminos. Eliminé las comillas dobles en las tres variables: PYTHONHOME, PYTHONPATH y PATH. Tenga en cuenta que esto estaba en un archivo cmd o bat para configurar el entorno para otras herramientas. Sin embargo, las comillas dobles pueden resultar útiles en la configuración de un icono. Mecanografía

conjunto

reveló que las comillas estaban en el camino y no cayeron como se esperaba. También acorté el PATH para que tuviera menos de 256 caracteres.

Greg
fuente
-1

Tengo una aplicación que se basa en gran medida en Python y me he mantenido actualizada con python 2.7.x a medida que se lanzan nuevas versiones. Todo ha estado bien hasta el 2.7.11 cuando obtuve el mismo " No module named site" error. Configuré PYTHONHOME c:\Python27y está funcionando. Pero el misterio sigue siendo por qué esto ahora es necesario cuando no lo era con versiones anteriores. Y, si es necesario, ¿por qué el instalador no establece esta var?

Dave Lawrence
fuente
-1

Yo tuve el mismo problema. Mi solución fue reparar la instalación de Python. (Era una instalación nueva, así que no esperaba ningún problema, pero ahora está resuelto).

Para reparar (Windows 7):

  1. vaya a Panel de control -> Programas -> Programas y características
  2. haga clic en la versión de Python instalada y luego presione Desinstalar / Cambiar.
  3. siga las instrucciones para reparar la instalación.
Reincorporar a Monica - Goodbye SE
fuente