"ImportError: No module named site" on Windows
I am trying to install Python for the first time. I downloaded the following installer from the Python website: Pytho开发者_JAVA技巧n 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?
I've been looking into this problem for myself for almost a day and finally had a breakthrough. Try this:
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.
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.
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 export
ing PYTHONHOME=/usr/ and PYTHONPATH=/usr/lib/python2.7
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
Locate site.py and add its path in PYTHONPATH. This will solve your problem.
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.
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
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%"
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.
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.
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.
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...
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.
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
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?
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):
- go to Control Panel -> Programs -> Programs and Features
- click on the Python version installed and then press Uninstall/Change.
- follow the instructions to repair the installation.
Install yaml from the PyYAML home pagee: http://www.pyyaml.org/wiki/PyYAML
Select the appropriate version for your OS and Python.
精彩评论