"ImportError: No module named site" on Windows

PythonWindowsModuleInstallationEnvironment Variables

Python Problem Overview


I am trying to install Python for the first time. I downloaded the following installer from the Python website: Python 2.7.1 Windows Installer (Windows binary -- does not include source). I then ran the installer, selected 'All Users' and all was fine. I installed Python into the default location:

C:\Python27

Next, to test that Python was installed correctly, I navigated to my Python directory, and executed python in the windows CMD prompt. It returns me the following error:

> ImportError: No module named site

When I execute python -v I get the following:

> #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.float_info
> #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

When I do dir C:\Python27\Lib\site.py* I get the following:

> Directory of C:\Python27\Lib
>
> 13/11/2010 20:08 20,389 site.py
> 1 File(s) 20,389 bytes
> 0 Dir(s) 694,910,976 bytes free

Any ideas?

Python Solutions


Solution 1 - Python

I've been looking into this problem for myself for almost a day and finally had a breakthrough. Try this:

  1. Setting the PYTHONPATH / PYTHONHOME variables

    Right click the Computer icon in the start menu, go to properties. On the left tab, go to Advanced system settings. In the window that comes up, go to the Advanced tab, then at the bottom click Environment Variables. Click in the list of user variables and start typing Python, and repeat for System variables, just to make certain that you don't have mis-set variables for PYTHONPATH or PYTHONHOME. Next, add new variables (I did in System rather than User, although it may work for User too): PYTHONPATH, set to C:\Python27\Lib. PYTHONHOME, set to C:\Python27.

Hope this helps!

Solution 2 - Python

Quick solution: set PYTHONHOME and PYTHONPATH and include PYTHONHOME on PATH

For example if you installed to c:\Python27

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

Make sure you don't have a trailing '' on the PYTHON* vars, this seems to break it aswel.

Solution 3 - Python

Make sure your PYTHONHOME environment variable is set correctly. You will receive this error if PYTHONHOME is pointing to invalid location or to another Python installation you are trying to run.

Try this:

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

Use

setx PYTHONHOME C:\Python27

to set this permanently for subsequent command prompts

Solution 4 - Python

I was having this issue after installing both Windows Python and Cygwin Python, and trying to run Cygwin Python from Cygwin. I solved it by exporting PYTHONHOME=/usr/ and PYTHONPATH=/usr/lib/python2.7

Solution 5 - Python

Locate site.py and add its path in PYTHONPATH. This will solve your problem.

Solution 6 - Python

Are you trying to run Windows Python from Cygwin? I'm having the same problem. Python in Cygwin fails to import site. Python in Cmd works.

It looks like you need to make sure you run PYTHONHOME and PYTHONPATH through cygwin -aw to make them Windows paths. Also, python seems to be using some incorrect paths.

I think I'll need to install python through cygwin to get it working.

Solution 7 - Python

For Windows 10 (follow up on @slckin answer), this can be set through the command line with:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"

Solution 8 - Python

In my case, the issue was another site.py file, that was resolved earlier than the one from Python\Lib, due to PATH setting.

Environment: Windows 10 Pro, Python27.

My desktop has pgAdmin installed, which has file C:\Program Files (x86)\pgAdmin\venv\Lib\site.py. Because PATH environment variable had pdAdmin's home earlier than Python (apparently a bad idea in the first place), pgAdmin's site.py was found first.

All I had to do to fix the issue was to move pgAdmin's home later than Python, in PATH

Solution 9 - Python

For me it happened because I had 2 versions of python installed - python 27 and python 3.3. Both these folder had path variable set, and hence there was this issue. To fix, this, I moved python27 to temp folder, as I was ok with python 3.3. So do check environment variables like PATH,PYTHONHOME as it may be a issue. Thanks.

Solution 10 - Python

If somebody will find that it's still not working under non-admin users:

Example error:

ImportError: No module named iso8601

you need to set '--always-unzip' option for easy_install:

easy_install --always-unzip python-keystoneclient

It will unzip your egg files and will allow import to find em.

Solution 11 - Python

I went through the same issue of ImportError: No module named site while installing python 2.7.11

Initially I had Python2.5 and the PYTHONHOME path was set to Python2.5. I renamed it to C:\Python27\ and it resolved the problem.

Solution 12 - Python

You may try the Open Source Active Python Setup which is a well done Python installer for Windows. You just have to desinstall your version and install it...

Solution 13 - Python

I up voted slckin's answer. My problem was that I was thoughtful and added double quotes around the paths. I removed the double quotes in all of the three variables: PYTHONHOME, PYTHONPATH, and PATH. Note that this was in a cmd or bat file to setup the environment for other tools. However, the double quotes may be useful in an icon setting. Typing > set

revealed that the quotes where in the path and not dropped as expected. I also shorted the PATH so that it was less than 256 characters long.

Solution 14 - Python

First uninstall python and again install the latest version during installation use custom install and mark all user checkbox and set the installation path C:\Python 3.9 and make PYTHON_HOME value C:\Python 3.9 in the Environmental variable it works for me

Solution 15 - Python

I have an application which relies heavily on Python and have kept up-to-date with python 2.7.x as new versions are released. Everthing has been fine until 2.7.11 when I got the same "No module named site" error. I've set PYTHONHOME to c:\Python27 and it's working. But the mystery remains why this is now needed when it wasn't with previous releases. And, if it is needed, why doesn't the installer set this var?

Solution 16 - Python

I had the same problem. My solution was to repair the Python installation. (It was a new installation so I did not expect a problem but now it is solved.)

To repair (Windows 7):

  1. go to Control Panel -> Programs -> Programs and Features
  2. click on the Python version installed and then press Uninstall/Change.
  3. follow the instructions to repair the installation.

Solution 17 - Python

Install yaml from the PyYAML home pagee: http://www.pyyaml.org/wiki/PyYAML

Select the appropriate version for your OS and Python.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMimminitoView Question on Stackoverflow
Solution 1 - PythonRenderCaseView Answer on Stackoverflow
Solution 2 - PythonslckinView Answer on Stackoverflow
Solution 3 - PythonMikaView Answer on Stackoverflow
Solution 4 - PythonJorge VargasView Answer on Stackoverflow
Solution 5 - PythonDigviJay PatilView Answer on Stackoverflow
Solution 6 - PythonidbriiView Answer on Stackoverflow
Solution 7 - PythonVesantoView Answer on Stackoverflow
Solution 8 - PythonIvan CView Answer on Stackoverflow
Solution 9 - Pythonkinshuk4View Answer on Stackoverflow
Solution 10 - PythonNoma4iView Answer on Stackoverflow
Solution 11 - PythonDebashishView Answer on Stackoverflow
Solution 12 - PythonphilnextView Answer on Stackoverflow
Solution 13 - PythonGregView Answer on Stackoverflow
Solution 14 - PythonHabtamuView Answer on Stackoverflow
Solution 15 - PythonDave LawrenceView Answer on Stackoverflow
Solution 16 - PythonReinstate Monica - Goodbye SEView Answer on Stackoverflow
Solution 17 - PythonCLead1000View Answer on Stackoverflow