ImportError: Brak modułu o nazwie site w systemie Windows

102

Po raz pierwszy próbuję zainstalować Pythona. Pobrałem następujący instalator ze strony Pythona: Python 2.7.1 Instalator Windows (plik binarny Windows - nie zawiera źródła) . Następnie uruchomiłem instalator, wybrałem „Wszyscy użytkownicy” i wszystko było w porządku. Zainstalowałem Pythona w domyślnej lokalizacji:

C:\Python27

Następnie, aby sprawdzić, czy Python został poprawnie zainstalowany, przeszedłem do mojego katalogu Pythona i uruchomiłem polecenie „python” w wierszu poleceń cmd systemu Windows. Zwraca mi następujący błąd:

ImportError: Żaden moduł o nazwie site

Kiedy wykonuję 'python -v', otrzymuję następujące informacje:

#installing zipimport hook
import zipimport # builtin
#installed zipimport hak
#ImportError: No module named site # Wyczyść wbudowane ._
#clear sys.path # Wyczyść sys.argv
#clear sys.ps1 # Wyczyść sys.ps2
#clear sys.exitfunc # Wyczyść sys.exc_type
#clear sys.exc_value # Wyczyść sys.exc_traceback
#clear sys.last_type # Wyczyść sys.last_value
#clear sys.last_traceback # Wyczyść sys.path_hooks
#clear sys.path_importer_cache # Wyczyść sys.meta_path
#clear sys.flags # Wyczyść sys.float_info
#restore sys.stdin # przywrócić sys.stdout
#restore sys.stderr #cleanup główny
#cleanup [1 ] zipimport #cleanup [1] sygnału
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup wbudowane
#cleanup ints: 6 unfreed ints #cleanup pływaki

Kiedy robię dir C:\Python27\Lib\site.py*, otrzymuję:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py *
Wolumin na dysku C nie ma etykiety.
Numer seryjny woluminu to DAB9-A863

Katalog C: \ Python27 \ Lib

13/11/2010 20:08 20,389 site.py
1 Plik (i) 20389 bajtów
0 Dir (y) 694,910,976 bajtów wolnych

Jakieś pomysły?

Mimminito
źródło
Zakładając, że nie zmieniłeś domyślnej lokalizacji instalacji, czy plik C: /Python27/Lib/site.py istnieje na Twoim komputerze?
Tim W.
Tak, site.py znajduje się w tym folderze
Mimminito,
7
@Mimminito: Jestem ciekawy (łagodnie), dlaczego zniknąłeś na 9 miesięcy i właśnie teraz zaakceptowałeś moją odpowiedź i (bardzo) czy kiedykolwiek dowiedziałeś się, na czym polega problem.
John Machin,
Obecnie mam ten problem. Nie mam pojęcia dlaczego i przeszukałem Internet w poszukiwaniu rozwiązania. Ciągle mówi ImportError: Żaden moduł o nazwie site, bez względu na to, jak zainstaluję Pythona i co umieściłem w moich ścieżkach PATH. Chciałbym wiedzieć, jak Python faktycznie ładuje site.py. Oczywiście jest to kwestia względnej / bezwzględnej ścieżki. I gdybym mógł po prostu skonfigurować ścieżkę Pythona bezpośrednio bez uciekania się do przypadkowych uderzeń w ciemności.
CMCDragonkai,
3
Miałem ten problem. Wywoływałem z Cygwina, który miał uniksową ścieżkę dla PYTHONPATH. Przekonwertowałem go na ścieżkę w stylu Windows z export PYTHONPATH=$(cygpath -w $PYTHONPATH)i działa dobrze. Dodanie tej notatki, aby pomóc innym osobom, które mogą wejść na tę stronę z tym samym problemem.
robert

Odpowiedzi:

145

Sama przyglądałem się temu problemowi prawie dzień i w końcu doszło do przełomu. Spróbuj tego:

  1. Ustawianie zmiennych PYTHONPATH / PYTHONHOME

    Kliknij prawym przyciskiem myszy ikonę Komputer w menu Start , przejdź do właściwości . Na lewej karcie przejdź do Zaawansowane ustawienia systemu . W wyświetlonym oknie przejdź do zakładki Zaawansowane , a następnie u dołu kliknij Zmienne środowiskowe . Kliknij listę zmiennych użytkownika i zacznij pisać Python i powtórz to dla zmiennych systemowych , aby upewnić się, że nie masz źle ustawionych zmiennych dla PYTHONPATH lub PYTHONHOME. Następnie dodaj nowe zmienne (zrobiłem w System, a nie w User, chociaż może to działać również dla użytkownika): PYTHONPATH, ustaw na C: \ Python27 \ Lib . PYTHONHOME, ustaw na C: \ Python27 .

Mam nadzieję że to pomoże!

RenderCase
źródło
7
Aby to zadziałało, musisz dołączyć% PYTHONHOME% do zmiennej ścieżki.
Rishi
7
Aha! To powinna być odpowiedź na pytanie. Dla mnie była to zmienna PYTHONHOME ustawiona na niepoprawną ścieżkę ... Usunąłem to i teraz DZIAŁA! Wygląda na to, że mod Alien Swarm Steam dodał to.
Timotei
2
Ustawienie żadnej PYTHONPATH/PYTHONHOMEzmiennej nie powinno być konieczne, aby Python mógł zlokalizować site.pymoduł umieszczony w Libfolderze. Ta odpowiedź jest w najlepszym przypadku obejściem.
Piotr Dobrogost
3
Zmienne środowiskowe to koszmar. Winię Linuksa.
Damien
1
Upewnij się, że nie masz jednocześnie zainstalowanych dwóch wersji języka Python. Może to zepsuć interpreter, jeśli na przykład Python 2.7 jest pierwszy w% PATH%, a Python3 jest ustawiony na PYTHONHOME.
LM.Croisez
41

Szybkie rozwiązanie: ustaw PYTHONHOME i PYTHONPATH i dołącz PYTHONHOME na PATH

Na przykład, jeśli zainstalowałeś c: \ Python27

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

Upewnij się, że nie masz końcowego '\' na zmiennej PYTHON *, wydaje się, że to wszystko psuje.

slckin
źródło
3
W systemie Windows 10 jest to teraz: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto
To działało dobrze w systemie Windows 7 z Pythonem 3.6
Thirst for Knowledge
12

Miałem ten problem po zainstalowaniu zarówno systemu Windows Python, jak i Cygwin Python i próbie uruchomienia Cygwin Python z Cygwin. Rozwiązałem to, exportwpisując PYTHONHOME = / usr / i PYTHONPATH = / usr / lib / python2.7

Jorge Vargas
źródło
12

Upewnij się, że zmienna środowiskowa PYTHONHOME jest ustawiona poprawnie. Ten błąd zostanie wyświetlony, jeśli PYTHONHOME wskazuje nieprawidłową lokalizację lub inną instalację Pythona, którą próbujesz uruchomić.

Spróbuj tego:

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

Posługiwać się

setx PYTHONHOME C:\Python27

aby ustawić to na stałe dla kolejnych monitów poleceń

Mika
źródło
6
Służy setx PYTHONHOME C:\Python27do ustawiania tego na stałe dla kolejnych monitów poleceń. W przeciwnym razie za każdym razem będziesz musiał użyć polecenia set.
Iain Samuel McLean Elder
5

Zlokalizuj site.py i dodaj jego ścieżkę w PYTHONPATH . To rozwiąże twój problem.

DigviJay Patil
źródło
4

Czy próbujesz uruchomić Windows Python z Cygwin? Mam ten sam problem. Python w Cygwin nie może zaimportować witryny. Działa Python w Cmd.

Wygląda na to, że musisz się upewnić, że uruchamiasz PYTHONHOME i PYTHONPATH, cygwin -awaby utworzyć ścieżki systemu Windows. Ponadto wydaje się, że Python używa nieprawidłowych ścieżek.

Myślę, że muszę zainstalować Pythona za pośrednictwem Cygwin, aby działał.

idbrii
źródło
1
Cześć, prawdopodobnie nie jest to nadal problem dla Ciebie, ale jeśli inni ludzie przyjdą z tym problemem, zobacz mój komentarz do głównego pytania. Zasadniczo musisz przekonwertować PYTHONPATHna ścieżkę w stylu Windows z export PYTHONPATH=$(cygpath -w $PYTHONPATH).
robert
4

W systemie Windows 10 (kontynuacja @slckin answer) można to ustawić za pomocą wiersza poleceń za pomocą:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"
Vesanto
źródło
6
Nigdy nie użyłbym, setx PATH "%PYTHONHOME%;%PATH%"ponieważ ustawia użytkownika PATHz sumą użytkownika i ścieżki systemowej. Jest w porządku lokalnie (używając set), ale nie używamsetx
Jean-François Fabre
4

W moim przypadku problemem był inny plik site.py, który został rozwiązany wcześniej niż ten z Python \ Lib, ze względu na ustawienie PATH.

Środowisko: Windows 10 Pro, Python27.

Na moim pulpicie jest zainstalowany pgAdmin, w którym jest plik C: \ Program Files (x86) \ pgAdmin \ venv \ Lib \ site.py. Ponieważ zmienna środowiskowa PATH miała dom pdAdmina wcześniej niż Python (najwyraźniej w pierwszej kolejności zły pomysł), jako pierwszy znaleziono plik site.py pgAdmina.

Wszystko, co musiałem zrobić, aby rozwiązać problem, to przenieść dom pgAdmin później niż Python, w PATH

Ivan C.
źródło
3

U mnie stało się tak, ponieważ miałem zainstalowane 2 wersje Pythona - python 27 i python 3.3. Oba te foldery miały ustawioną zmienną ścieżki, dlatego wystąpił ten problem. Aby to naprawić, przeniosłem python27 do folderu temp, ponieważ byłem w porządku z pythonem 3.3. Więc sprawdź zmienne środowiskowe, takie jak PATH, PYTHONHOME, ponieważ może to być problem. Dzięki.

kinshuk4
źródło
1

Jeśli ktoś stwierdzi, że to nadal nie działa dla użytkowników niebędących administratorami:

Przykładowy błąd:

ImportError: No module named iso8601

musisz ustawić opcję „--always-unzip” dla easy_install:

easy_install --always-unzip python-keystoneclient

Rozpakuje pliki z jajami i pozwoli na import, aby je znaleźć.

Noma4i
źródło
1

Przeszedłem przez ten sam problem ImportError: No module named sitepodczas instalowania Pythona 2.7.11

Początkowo miałem Python2.5, a ścieżka PYTHONHOME była ustawiona na Python2.5. Zmieniłem nazwę na C:\Python27\i rozwiązało to problem.

Debashish
źródło
0

Możesz wypróbować Open Source Active Python Setup, który jest dobrze wykonanym instalatorem Pythona dla systemu Windows. Musisz tylko odinstalować swoją wersję i zainstalować ją ...

philnext
źródło
7
Instalator python.org jest w porządku
David Heffernan
Zainstalowałem Active Python na moim laptopie i zainstalowałem to dobrze. Ale to nie działa na moim komputerze, nadal
pojawia
0

Głosowałem na odpowiedź Slckina. Mój problem polegał na tym, że byłem przemyślany i dodałem podwójne cudzysłowy wokół ścieżek. Usunąłem podwójne cudzysłowy we wszystkich trzech zmiennych: PYTHONHOME, PYTHONPATH i PATH. Zauważ, że było to w pliku cmd lub bat, aby skonfigurować środowisko dla innych narzędzi. Jednak podwójne cudzysłowy mogą być przydatne w ustawieniach ikon. Pisanie na maszynie

zestaw

ujawnił, że cudzysłowy były na ścieżce i nie spadły zgodnie z oczekiwaniami. Skróciłem również PATH, aby miał mniej niż 256 znaków.

Greg
źródło
-1

Mam aplikację, która w dużym stopniu opiera się na Pythonie i jest na bieżąco z Pythonem 2.7.xw miarę wydawania nowych wersji. Wszystko było w porządku do dnia 2.7.11, kiedy otrzymałem ten sam „ No module named site” błąd. Ustawiłem PYTHONHOME na c:\Python27i działa. Ale tajemnicą pozostaje, dlaczego jest to teraz potrzebne, kiedy nie było tego w poprzednich wersjach. A jeśli jest to potrzebne, dlaczego instalator nie ustawia tej zmiennej?

Dave Lawrence
źródło
-1

Miałem ten sam problem. Moim rozwiązaniem była naprawa instalacji Pythona. (To była nowa instalacja, więc nie spodziewałem się problemu, ale teraz został rozwiązany).

Aby naprawić (Windows 7):

  1. przejdź do Panel sterowania -> Programy -> Programy i funkcje
  2. kliknij zainstalowaną wersję Pythona, a następnie naciśnij Odinstaluj / Zmień.
  3. postępuj zgodnie z instrukcjami, aby naprawić instalację.
Przywróć Monikę - Goodbye SE
źródło
-3

Zainstaluj yaml ze strony głównej PyYAMLe: http://www.pyyaml.org/wiki/PyYAML

Wybierz odpowiednią wersję dla swojego systemu operacyjnego i języka Python.

CLead1000
źródło