ImportError: в Windows нет модуля с именем site


102

Я впервые пытаюсь установить Python. Я загрузил следующий установщик с веб-сайта Python: Python 2.7.1 Windows Installer (двоичный файл Windows - не включает исходный код) . Затем я запустил программу установки, выбрал «Все пользователи», и все было в порядке. Я установил Python в папку по умолчанию:

C:\Python27

Затем, чтобы проверить правильность установки Python, я перешел в свой каталог Python и выполнил команду «python» в командной строке Windows. Он возвращает мне следующую ошибку:

ImportError: нет модуля с именем site

Когда я делаю python -v, я получаю следующее:

#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 # восстановить 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

Когда я делаю dir, C:\Python27\Lib\site.py*я получаю следующее:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py *
Том на диске C не имеет метки.
Серийный номер тома DAB9-A863.

Каталог C: \ Python27 \ Lib

13/11/2010 20:08 20,389 site.py
1 Файл (ы) 20,389 байт
0 Каталог (ы) 694,910,976 байт свободно

Любые идеи?


Предполагая, что вы не изменили место установки по умолчанию, существует ли на вашем компьютере файл C: /Python27/Lib/site.py?
Тим В.

Да, site.py находится в этой папке
Mimminito

7
@Mimminito: Мне любопытно (мягко), почему вы исчезли на 9 месяцев и только что приняли мой ответ, и (очень), если вы когда-нибудь узнали, в чем заключалась основная проблема.
Джон Мачин

У меня сейчас эта проблема. Я понятия не имею, почему, и я поискал в Интернете решение. Он продолжает говорить ImportError: Нет модуля с именем site, независимо от того, как я устанавливаю python и что я кладу в свои PATH. Я хотел бы знать, как на самом деле python загружает site.py. Очевидно, это проблема относительного / абсолютного пути. И если бы я мог просто настроить путь питона напрямую, не прибегая к случайным ударам в темноте.
CMCDragonkai 09

3
У меня была такая проблема. Я вызывал из Cygwin, для которого был unix-подобный путь PYTHONPATH. Я преобразовал его в путь в стиле Windows, export PYTHONPATH=$(cygpath -w $PYTHONPATH)и он отлично работает. Добавление этой заметки, чтобы помочь другим людям, которые могут прийти на эту страницу с той же проблемой.
Роберт

Ответы:


145

Я занимался этой проблемой для себя почти день и, наконец, сделал прорыв. Попробуй это:

  1. Установка переменных PYTHONPATH / PYTHONHOME

    Щелкните правой кнопкой мыши значок Компьютер в меню Пуск , перейдите к свойствам . На левой вкладке перейдите в Дополнительные настройки системы . В появившемся окне перейдите на вкладку «Дополнительно» , затем внизу нажмите « Переменные среды» . Щелкните список пользовательских переменных и начните вводить Python и повторите для системных переменных , просто чтобы убедиться, что у вас нет ошибочно установленных переменных для PYTHONPATH или PYTHONHOME. Затем добавьте новые переменные (я сделал это в System, а не в User, хотя это может работать и для User): PYTHONPATH, установите C: \ Python27 \ Lib . PYTHONHOME, установите C: \ Python27 .

Надеюсь это поможет!


7
И вам нужно добавить% PYTHONHOME% к переменной пути, чтобы это работало.
Риши

7
Ага! Это должен быть ответ на вопрос. Для меня это была переменная PYTHONHOME, для которой задан недопустимый путь ... Удалено это, и теперь она РАБОТАЕТ! Похоже, мод Steam Alien Swarm добавил это.
Timotei

2
PYTHONPATH/PYTHONHOMEЧтобы Python мог найти site.pyмодуль, помещенный в Libпапку, установка ни одной из переменных не требуется . Этот ответ - в лучшем случае обходной путь.
Петр Доброгост

3
Переменные окружения - это кошмар. Я виню Linux.
Дэмиен

1
Убедитесь, что у вас не установлены две версии Python одновременно. Это может испортить интерпретатор, если, например, Python 2.7 будет первым в% PATH%, а Python3 установлен для PYTHONHOME.
LM.Croisez

41

Быстрое решение: установите PYTHONHOME и PYTHONPATH и включите PYTHONHOME в PATH

Например, если вы установили в c: \ Python27

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

Убедитесь, что у вас нет завершающего символа '\' на варах PYTHON *, это, кажется, нарушает его aswel.


3
Если в Windows 10 это сейчас: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Весанто

У меня это отлично сработало в Windows 7 с Python 3.6
Thirst for Knowledge

12

У меня возникла эта проблема после установки Windows Python и Cygwin Python и попытки запустить Cygwin Python из Cygwin. Я решил это, используя exportPYTHONHOME = / usr / и PYTHONPATH = / usr / lib / python2.7


12

Убедитесь, что ваша переменная среды PYTHONHOME установлена ​​правильно. Вы получите эту ошибку, если PYTHONHOME указывает на недопустимое местоположение или на другую установку Python, которую вы пытаетесь запустить.

Попробуй это:

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

Использовать

setx PYTHONHOME C:\Python27

чтобы установить это постоянно для последующих командных подсказок


6
Используйте, setx PYTHONHOME C:\Python27чтобы установить это постоянно для последующих командных подсказок. В противном случае вам придется каждый раз использовать команду set.
Iain Samuel McLean Elder


4

Вы пытаетесь запустить Windows Python из Cygwin? У меня такая же проблема. Python в Cygwin не может импортировать сайт. Python в Cmd работает.

Похоже, вам нужно убедиться, что вы запустили PYTHONHOME и PYTHONPATH, cygwin -awчтобы сделать их путями Windows. Кроме того, похоже, что python использует неправильные пути.

Думаю, мне нужно установить python через cygwin, чтобы он заработал.


1
Привет, это, вероятно, все еще не проблема для вас, но в случае, если другие люди приходят с этой проблемой, см. Мой комментарий по основному вопросу. В основном вам нужно преобразовать PYTHONPATHв путь в стиле Windows с помощью export PYTHONPATH=$(cygpath -w $PYTHONPATH).
Роберт

4

Для Windows 10 (см. Ответ @slckin) это можно установить через командную строку с помощью:

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

6
Я бы никогда не стал использовать, setx PATH "%PYTHONHOME%;%PATH%"потому что он устанавливает для пользователя PATHсумму пользовательского и системного пути. Это нормально локально (использовать set), но не использоватьsetx
Жан-Франсуа Фабр

4

В моем случае проблема заключалась в другом файле site.py, который был решен раньше, чем файл из Python \ Lib, из-за настройки PATH.

Среда: Windows 10 Pro, Python27.

На моем рабочем столе установлен pgAdmin, в котором есть файл C: \ Program Files (x86) \ pgAdmin \ venv \ Lib \ site.py. Поскольку переменная среды PATH имела дом pdAdmin раньше, чем Python (очевидно, изначально плохая идея), первым был найден site.py pgAdmin.

Все, что мне нужно было сделать, чтобы исправить проблему, - это переместить дом pgAdmin позже, чем Python, в PATH


3

Для меня это произошло, потому что у меня было установлено 2 версии python - python 27 и python 3.3. В обеих этих папках была установлена ​​переменная пути, и, следовательно, возникла эта проблема. Чтобы исправить это, я переместил python27 в папку temp, так как я был в порядке с python 3.3. Так что проверьте переменные среды, такие как PATH, PYTHONHOME, поскольку это может быть проблемой. Спасибо.


1

Если кто-то обнаружит, что он все еще не работает под пользователями без прав администратора:

Пример ошибки:

ImportError: No module named iso8601

вам нужно установить опцию --always-unzip для easy_install:

easy_install --always-unzip python-keystoneclient

Он распакует ваши файлы яиц и позволит импортировать их.


1

Я ImportError: No module named siteстолкнулся с той же проблемой при установке python 2.7.11

Первоначально у меня был Python2.5, а путь PYTHONHOME был установлен на Python2.5. Я переименовал его в, C:\Python27\и проблема была решена.


0

Вы можете попробовать Active Python Setup с открытым исходным кодом, который представляет собой хорошо сделанный установщик Python для Windows. Вам просто нужно деинсталлировать вашу версию и установить ее ...


7
Установщик python.org в порядке
Дэвид Хеффернан

Я установил Active Python на свой ноутбук, и он установился нормально. Но это не работает на моем ПК, я все еще получаю ту же ошибку
Mimminito

0

Я проголосовал за ответ Slckin. Моя проблема заключалась в том, что я был вдумчивым и добавил двойные кавычки вокруг путей. Я удалил двойные кавычки во всех трех переменных: PYTHONHOME, PYTHONPATH и PATH. Обратите внимание, что это было в файле cmd или bat для настройки среды для других инструментов. Однако двойные кавычки могут быть полезны при настройке значков. Набор текста

устанавливать

Выяснилось, что кавычки попали в путь, а не сброшены, как ожидалось. Я также сократил PATH, чтобы он был меньше 256 символов.


-1

У меня есть приложение, которое в значительной степени опирается на Python и обновляется до версии python 2.7.x по мере выпуска новых версий. Все было хорошо до 2.7.11, когда я получил ту же No module named siteошибку " ". Я установил PYTHONHOME на, c:\Python27и он работает. Но остается загадкой, зачем это нужно сейчас, когда этого не было в предыдущих выпусках. И, если это необходимо, почему установщик не устанавливает эту переменную?


-1

У меня такая же проблема. Мое решение состояло в том, чтобы восстановить установку Python. (Это была новая установка, поэтому я не ожидал проблемы, но теперь она решена.)

Чтобы восстановить (Windows 7):

  1. перейдите в Панель управления -> Программы -> Программы и компоненты
  2. щелкните установленную версию Python, а затем нажмите Удалить / Изменить.
  3. следуйте инструкциям по ремонту установки.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.