ImportError: Tidak ada modul bernama situs di Windows

101

Saya mencoba menginstal Python untuk pertama kalinya. Saya mengunduh penginstal berikut dari situs web Python : Penginstal Windows Python 2.7.1 (Windows biner - tidak termasuk sumber) . Saya kemudian menjalankan penginstal, memilih 'Semua Pengguna' dan semuanya baik-baik saja. Saya menginstal Python ke lokasi default:

C:\Python27

Selanjutnya, untuk menguji bahwa Python telah diinstal dengan benar, saya menavigasi ke Direktori Python saya, dan menjalankan perintah "python" di jendela cmd prompt. Ini mengembalikan saya kesalahan berikut:

ImportError: Tidak ada modul bernama situs

Ketika saya melakukan 'python -v' saya mendapatkan yang berikut:

#installing zipimport hook
import zipimport # builtin
# hook
#ImportError: No module named site zipimport terpasang #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 # pulihkan sys.stdout
#restore sys.stderr #cleanup utama
#cleanup [1 ] zipimport #cleanup [1] sinyal
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup builtin
#cleanup ints: 6 unfreed ints #cleanup floats

Ketika saya melakukan dir C:\Python27\Lib\site.py*saya mendapatkan yang berikut:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py *
Volume di drive C tidak memiliki label.
Volume Serial Number adalah DAB9-A863

Direktori C: \ Python27 \ Lib

13/11/2010 20:08 20.389 site.py
1 File 20.389 byte
0 Dir 694.910.976 byte gratis

Ada ide?

Mimminito
sumber
Dengan asumsi Anda tidak mengubah lokasi pemasangan default, apakah file C: /Python27/Lib/site.py ada di komputer Anda?
Tim W.
Ya, site.py terletak di folder itu
Mimminito
7
@Mimminito: Saya ingin tahu (agak) mengapa Anda menghilang selama 9 bulan dan baru saja menerima jawaban saya, dan (sangat) jika Anda pernah menemukan apa masalah yang mendasarinya.
John Machin
Saya mendapatkan masalah ini sekarang. Saya tidak tahu mengapa dan saya telah menjelajahi internet untuk mencari solusi. ImportError terus mengatakan: Tidak ada modul bernama situs tidak peduli bagaimana saya menginstal python dan apa yang saya masukkan ke dalam PATH saya. Saya ingin tahu bagaimana sebenarnya python memuat site.py. Jelas ini adalah masalah jalur relatif / absolut. Dan Jika saya bisa mengonfigurasi jalur python secara langsung tanpa menggunakan tusukan acak dalam kegelapan.
CMCDragonkai
3
Saya punya masalah ini. Saya memanggil dari Cygwin yang memiliki jalur mirip unix PYTHONPATH. Saya mengubahnya menjadi jalur gaya jendela dengan export PYTHONPATH=$(cygpath -w $PYTHONPATH)dan berfungsi dengan baik. Menambahkan catatan ini untuk membantu orang lain yang mungkin mengunjungi halaman ini dengan masalah yang sama.
robert

Jawaban:

145

Saya telah melihat sendiri masalah ini selama hampir satu hari dan akhirnya mendapatkan terobosan. Coba ini:

  1. Mengatur variabel PYTHONPATH / PYTHONHOME

    Klik kanan ikon Komputer di menu mulai , buka properti . Di tab kiri, buka Pengaturan sistem lanjutan . Di jendela yang muncul, buka tab Advanced , lalu di bagian bawah klik Variabel Lingkungan . Klik dalam daftar variabel pengguna dan mulai ketik Python, dan ulangi untuk variabel Sistem , hanya untuk memastikan bahwa Anda tidak memiliki variabel yang salah setel untuk PYTHONPATH atau PYTHONHOME. Selanjutnya, tambahkan variabel baru (saya lakukan di Sistem daripada Pengguna, meskipun mungkin bekerja untuk Pengguna juga): PYTHONPATH, setel ke C: \ Python27 \ Lib . PYTHONHOME, setel ke C: \ Python27 .

Semoga ini membantu!

RenderCase
sumber
7
Dan Anda perlu menambahkan% PYTHONHOME% ke variabel jalur Anda juga agar ini berfungsi.
Rishi
7
Aha! Ini harus menjadi jawaban atas pertanyaan itu. Bagi saya, itu adalah variabel PYTHONHOME yang disetel ke jalur yang tidak valid ... Hapus itu, dan sekarang BEKERJA! Sepertinya mod Alien Swarm dari Steam menambahkan itu.
Timotei
2
Menetapkan tidak ada PYTHONPATH/PYTHONHOMEvariabel yang diperlukan Python untuk menemukan site.pymodul yang ditempatkan di Libfolder. Jawaban ini adalah solusi terbaik.
Piotr Dobrogost
3
Variabel lingkungan adalah mimpi buruk. Saya menyalahkan Linux.
Damien
1
Pastikan Anda tidak menginstal dua versi Python secara bersamaan. Ini bisa mengacaukan interpreter, jika Python 2.7 berada di urutan pertama dalam% PATH%, dan Python3 diatur untuk PYTHONHOME, misalnya.
LM.Croisez
41

Solusi cepat: atur PYTHONHOME dan PYTHONPATH dan sertakan PYTHONHOME di PATH

Misalnya jika Anda menginstal ke c: \ Python27

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

Pastikan Anda tidak memiliki tanda '\' pada PYTHON * vars, ini tampaknya merusaknya juga.

slckin.dll
sumber
3
Jika di windows 10, ini sekarang: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto
Ini bekerja dengan baik untuk saya di Windows 7 dengan Python 3.6
Haus akan Pengetahuan
12

Saya mengalami masalah ini setelah menginstal Windows Python dan Cygwin Python, dan mencoba menjalankan Cygwin Python dari Cygwin. Saya menyelesaikannya dengan menggunakan exportPYTHONHOME = / usr / dan PYTHONPATH = / usr / lib / python2.7

Jorge Vargas
sumber
12

Pastikan variabel lingkungan PYTHONHOME Anda disetel dengan benar. Anda akan menerima kesalahan ini jika PYTHONHOME mengarah ke lokasi yang tidak valid atau ke instalasi Python lain yang Anda coba jalankan.

Coba ini:

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

Menggunakan

setx PYTHONHOME C:\Python27

untuk mengatur ini secara permanen untuk perintah perintah selanjutnya

Mika
sumber
6
Gunakan setx PYTHONHOME C:\Python27untuk menyetel ini secara permanen untuk prompt perintah selanjutnya. Jika tidak, Anda harus menggunakan perintah set setiap saat.
Iain Samuel McLean Penatua
5

Temukan site.py dan tambahkan jalurnya di PYTHONPATH . Ini akan menyelesaikan masalah Anda.

DigviJay Patil
sumber
4

Apakah Anda mencoba menjalankan Windows Python dari Cygwin? Saya mempunyai masalah yang sama. Python di Cygwin gagal mengimpor situs. Python di Cmd berfungsi.

Sepertinya Anda perlu memastikan bahwa Anda menjalankan PYTHONHOME dan PYTHONPATH cygwin -awuntuk menjadikannya jalur Windows. Juga, python tampaknya menggunakan beberapa jalur yang salah.

Saya pikir saya harus menginstal python melalui cygwin untuk membuatnya berfungsi.

idbrii
sumber
1
Hai, ini mungkin belum menjadi masalah bagi Anda, tetapi jika ada orang lain yang mengalami masalah ini, lihat komentar saya di pertanyaan utama. Pada dasarnya Anda perlu mengonversi PYTHONPATHke jalur bergaya windows dengan export PYTHONPATH=$(cygpath -w $PYTHONPATH).
robert
4

Untuk Windows 10 (tindak lanjut pada jawaban @slckin), ini dapat diatur melalui baris perintah dengan:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"
Vesanto
sumber
6
Saya tidak akan pernah menggunakan setx PATH "%PYTHONHOME%;%PATH%"karena menetapkan pengguna PATHdengan jumlah jalur pengguna & sistem. Tidak apa-apa secara lokal (menggunakan set) tetapi tidak menggunakansetx
Jean-François Fabre
4

Dalam kasus saya, masalahnya adalah file site.py lain, yang diselesaikan lebih awal daripada yang dari Python \ Lib, karena pengaturan PATH.

Lingkungan: Windows 10 Pro, Python27.

Desktop saya telah menginstal pgAdmin, yang memiliki file C: \ Program Files (x86) \ pgAdmin \ venv \ Lib \ site.py. Karena variabel lingkungan PATH memiliki rumah pdAdmin lebih awal dari Python (tampaknya ide yang buruk di tempat pertama), pgAdmin's site.py ditemukan lebih dulu.

Yang harus saya lakukan untuk memperbaiki masalah ini adalah memindahkan rumah pgAdmin lebih lambat dari Python, di PATH

Ivan C
sumber
3

Bagi saya itu terjadi karena saya menginstal 2 versi python - python 27 dan python 3.3. Kedua folder ini memiliki kumpulan variabel jalur, dan karenanya ada masalah ini. Untuk memperbaikinya, saya memindahkan python27 ke folder temp, karena saya baik-baik saja dengan python 3.3. Jadi periksa variabel lingkungan seperti PATH, PYTHONHOME karena mungkin menjadi masalah. Terima kasih.

kinshuk4
sumber
1

Jika seseorang akan menemukan bahwa itu masih tidak berfungsi di bawah pengguna non-admin:

Contoh kesalahan:

ImportError: No module named iso8601

Anda perlu mengatur opsi '--always-unzip' untuk easy_install:

easy_install --always-unzip python-keystoneclient

Ini akan mengekstrak file telur Anda dan akan memungkinkan impor untuk menemukannya.

Noma4i
sumber
1

Saya mengalami masalah yang sama ImportError: No module named sitesaat menginstal python 2.7.11

Awalnya saya memiliki Python2.5 dan jalur PYTHONHOME diatur ke Python2.5. Saya mengganti namanya menjadi C:\Python27\dan itu menyelesaikan masalah.

Debashish
sumber
0

Anda dapat mencoba Open Source Active Python Setup yang merupakan penginstal Python untuk Windows. Anda hanya perlu menghapus versi Anda dan menginstalnya ...

philnext
sumber
7
Pemasang python.org baik
David Heffernan
Saya menginstal Active Python di laptop saya, dan ini diinstal dengan baik. Tetapi tidak berfungsi pada PC saya, saya masih mendapatkan kesalahan yang sama
Mimminito
0

Saya memilih jawaban slckin. Masalah saya adalah bahwa saya bijaksana dan menambahkan tanda kutip ganda di sekitar jalan. Saya menghapus tanda kutip ganda di ketiga variabel: PYTHONHOME, PYTHONPATH, dan PATH. Perhatikan bahwa ini ada dalam file cmd atau bat untuk mengatur lingkungan untuk alat lain. Namun, tanda kutip ganda mungkin berguna dalam pengaturan ikon. Mengetik

set

mengungkapkan bahwa kutipan mana di jalur dan tidak turun seperti yang diharapkan. Saya juga mempersingkat PATH sehingga kurang dari 256 karakter.

Greg
sumber
-1

Saya memiliki aplikasi yang sangat bergantung pada Python dan tetap up-to-date dengan python 2.7.x saat versi baru dirilis. Semuanya baik-baik saja hingga 2.7.11 saat saya mendapatkan No module named sitekesalahan " " yang sama . Saya telah menyetel PYTHONHOME ke c:\Python27dan berhasil. Tapi misteri tetap mengapa ini sekarang dibutuhkan padahal tidak dengan rilis sebelumnya. Dan, jika diperlukan, mengapa penginstal tidak menyetel var ini?

Dave Lawrence
sumber
-1

Saya memiliki masalah yang sama. Solusi saya adalah memperbaiki instalasi Python. (Ini adalah instalasi baru jadi saya tidak mengharapkan masalah tetapi sekarang sudah terpecahkan.)

Untuk memperbaiki (Windows 7):

  1. pergi ke Control Panel -> Program -> Program dan Fitur
  2. klik pada versi Python yang diinstal dan kemudian tekan Uninstall / Change.
  3. ikuti instruksi untuk memperbaiki instalasi.
Kembalikan Monica - Selamat tinggal SE
sumber