ImportError: Немає модуля, названого сайтом у Windows


101

Я вперше намагаюся встановити Python. Я завантажив наступного інсталятора з веб-сайту Python: Python 2.7.1 Windows Installer (двійковий Windows - не включає джерело) . Потім я запустив інсталятор, вибрав "Усі користувачі" і все було добре. Я встановив Python у стандартне місце:

C:\Python27

Далі, щоб перевірити, що Python встановлений правильно, я перейшов до свого каталогу Python та запустив команду "python" у вікні cmd. Він повертає мені таку помилку:

ImportError: Немає модуля, названого сайтом

Коли я роблю 'python -v', я отримую наступне:

#installing zipimport hook
import zipimport # builtin
# встановлений гак
#ImportError: No module named site zipimport # ясний вбудований ._ #
#clear sys.path ясний sys.argv
#clear sys.ps1 # ясний
#clear sys.exitfunc sys.ps2 #
#clear sys.exc_value ясний sys.exc_type
#clear sys.last_type #clear sys.exc_traceback
#clear sys.last_traceback #clear sys.last_value #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] сигнал
#cleanup[1 ] exceptions #cleanup [1] _
#cleanup sys попередження #cleanup вбудований
#cleanup ints: 6 unfreed ints #cleanup плаває

Коли я роблю реж, 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 Dir (s) 694,910,976 байт безкоштовно

Якісь ідеї?


Якщо ви не змінили місце встановлення за замовчуванням, чи на вашому комп’ютері існує файл C: /Python27/Lib/site.py?
Тім В.

Так, site.py знаходиться в цій папці
Mimminito

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

Я зараз отримую цю проблему. Я поняття не маю, чому, і я шукав Інтернет для вирішення. ImportError постійно говорить: Немає модуля, названого сайтом, незалежно від того, як я встановив python і що я вклав у свої PATH. Мені хотілося б знати, як Python насправді завантажує сайт.py. Очевидно, що це питання відносного / абсолютного шляху. І якби я міг просто налаштувати шлях пітона безпосередньо, не вдаючись до випадкових ударів у темряві.
CMCDragonkai

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

Відповіді:


145

Я майже щодня переглядав цю проблему і нарешті мав прорив. Спробуйте це:

  1. Встановлення змінних PYTHONPATH / PYTHONHOME

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

Сподіваюся, це допомагає!


7
І вам також потрібно додати% PYTHONHOME% до змінної шляху, а також для цього.
Ріші

7
Ага! Це має бути відповіддю на запитання. Для мене це була змінна PYTHONHOME, встановлена ​​на недійсний шлях ... Видалено це, і тепер воно працює! Схоже, мод Alien Swarm Steam додав це.
Тимотей

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 * vars немає останнього "\", це, здається, порушило його активацію.


3
Якщо у Windows 10, це зараз: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto

Це працювало для мене чудово в Windows 7 з Python 3.6
Жага знань

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 щоразу.
Ієн Самуель Маклін Старший

5

Знайдіть site.py і додайте його шлях у PYTHONPATH . Це вирішить вашу проблему.


4

Ви намагаєтеся запустити Windows Python від Cygwin? У мене така ж проблема. Python у Cygwin не вдалося імпортувати сайт. Python in 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 (очевидно, в першу чергу погана ідея), сайт pgAdmin site.py був знайдений першим.

Все, що мені потрібно було зробити, щоб виправити проблему, - це перемістити додому pgAdmin пізніше, ніж Python, у PATH


3

Для мене це сталося тому, що в мене було встановлено 2 версії python - python 27 та python 3.3. Для обох цих папок встановлено змінну шляху, і звідси виникла ця проблема. Щоб виправити це, я перемістив python27 у папку temp, так як у мене було нормально з python 3.3. Тож перевіряйте змінні середовища, як PATH, PYTHONHOME, оскільки це може бути проблемою. Дякую.


1

Якщо хтось виявить, що все ще не працює для користувачів, які не є адміністратором:

Приклад помилки:

ImportError: No module named iso8601

для easy_install потрібно встановити параметр '--always-unzip':

easy_install --always-unzip python-keystoneclient

Це розпакує ваші яєчні файли та дозволить імпортувати їх.


1

Я пішов через те саме питання, ImportError: No module named siteколи встановлював python 2.7.11

Спочатку у мене був Python2.5, і шлях PYTHONHOME був встановлений на Python2.5. Я перейменував його на C:\Python27\це, і це вирішило проблему.


0

Ви можете спробувати Open Source 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і він працює. Але залишається загадкою, чому це зараз потрібно, коли цього не було в попередніх випусках. І якщо це потрібно, чому інсталятор не встановить цей var?


-1

У мене була така ж проблема. Моїм рішенням було відновити установку Python. (Це була нова установка, тому я не очікував проблеми, але зараз вона вирішена.)

Щоб відновити (Windows 7):

  1. перейдіть до Панелі управління -> Програми -> Програми та функції
  2. натисніть встановлену версію Python, а потім натисніть Видалити / Змінити.
  3. дотримуйтесь інструкцій щодо ремонту установки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.