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?


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!


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.


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


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ń


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


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ł.


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%"

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


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.


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źć.


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.


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ą ...


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.


-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?


-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ę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.