ImportError: ไม่มีโมดูลชื่อไซต์บน Windows


102

ฉันพยายามติดตั้ง Python เป็นครั้งแรก ฉันดาวน์โหลดติดตั้งต่อไปนี้จากเว็บไซต์หลาม: งูหลาม 2.7.1 การติดตั้ง Windows (Windows ไบนารี - ไม่รวมถึงแหล่งที่มา) จากนั้นฉันก็เรียกใช้โปรแกรมติดตั้งเลือก 'ผู้ใช้ทั้งหมด' และทุกอย่างเรียบร้อยดี ฉันติดตั้ง Python ในตำแหน่งเริ่มต้น:

C:\Python27

จากนั้นเพื่อทดสอบว่า Python ได้รับการติดตั้งอย่างถูกต้องฉันไปที่ Python Directory ของฉันและรันคำสั่ง "python" ในหน้าต่าง cmd prompt มันส่งคืนข้อผิดพลาดต่อไปนี้ให้ฉัน:

ImportError: ไม่มีโมดูลชื่อไซต์

เมื่อฉันทำ 'python -v' ฉันจะได้รับสิ่งต่อไปนี้:

#installing zipimport hook
import zipimport # builtin
# ติดตั้ง 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] สัญญาณ
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup builtin
#cleanup ints: 6 unfreed ints #cleanup ลอย

เมื่อฉันทำC:\Python27\Lib\site.py*ฉันได้รับสิ่งต่อไปนี้:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py *
ไดรฟ์ข้อมูลในไดรฟ์ C ไม่มีป้ายกำกับ
Volume Serial Number คือ 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 มีอยู่ในคอมพิวเตอร์ของคุณหรือไม่
Tim W.

ใช่ site.py อยู่ในโฟลเดอร์นั้น
Mimminito

7
@Mimminito: ฉันสงสัย (เบา ๆ ) ว่าทำไมคุณหายไป 9 เดือนและตอนนี้ยอมรับคำตอบของฉันและ (อย่างมาก) ถ้าคุณเคยพบว่าปัญหาพื้นฐานคืออะไร
John Machin

ฉันได้รับปัญหานี้ในขณะนี้ ฉันไม่รู้ว่าทำไมและฉันจึงล้างอินเทอร์เน็ตเพื่อหาวิธีแก้ปัญหา มันบอกว่า ImportError: ไม่มีโมดูลชื่อไซต์ไม่ว่าฉันจะติดตั้ง python อย่างไรและสิ่งที่ฉันใส่ลงใน PATH ของฉันก็ตาม ฉันอยากรู้ว่า python โหลด site.py ได้อย่างไร เห็นได้ชัดว่านี่เป็นปัญหาเส้นทางสัมพัทธ์ / สัมบูรณ์ และถ้าฉันสามารถกำหนดเส้นทางของ python ได้โดยตรงโดยไม่ต้องใช้การแทงแบบสุ่มในที่มืด
CMCDragonkai

3
ฉันมีปัญหานี้ ฉันเรียกใช้จาก Cygwin ซึ่งมีเส้นทางเหมือนยูนิกซ์สำหรับPYTHONPATH. ฉันแปลงเป็นเส้นทางสไตล์ windows export PYTHONPATH=$(cygpath -w $PYTHONPATH)และใช้งานได้ดี การเพิ่มบันทึกนี้เพื่อช่วยเหลือผู้อื่นที่อาจเข้ามาที่หน้านี้ด้วยปัญหาเดียวกัน
robert

คำตอบ:


145

ฉันมองหาปัญหานี้ด้วยตัวเองมาเกือบวันและในที่สุดก็ประสบความสำเร็จ ลองสิ่งนี้:

  1. การตั้งค่าตัวแปรPYTHONPATH / PYTHONHOME

    คลิกขวาที่ไอคอนคอมพิวเตอร์ในเมนูเริ่มต้นไปที่คุณสมบัติ บนแท็บซ้ายไปที่การตั้งค่าระบบขั้นสูง ในหน้าต่างที่ขึ้นมาให้ไปที่แท็บ Advancedแล้วที่ด้านล่างคลิกตัวแปรของสภาพแวดล้อม คลิกในรายการตัวแปรผู้ใช้และเริ่มพิมพ์ Python และทำซ้ำสำหรับตัวแปรระบบเพื่อให้แน่ใจว่าคุณไม่มีตัวแปรที่ตั้งค่าผิดสำหรับ PYTHONPATH หรือ PYTHONHOME ถัดไปเพิ่มตัวแปรใหม่ (ฉันได้ในระบบมากกว่าผู้ใช้ถึงแม้ว่ามันอาจทำงานสำหรับผู้ใช้มากเกินไป): PYTHONPATH กำหนดให้C: \ Python27 \ Lib PYTHONHOMEตั้งค่าC: \ Python27

หวังว่านี่จะช่วยได้!


7
และคุณต้องต่อท้าย% PYTHONHOME% เข้ากับตัวแปรเส้นทางของคุณด้วยเพื่อให้สิ่งนี้ทำงานได้
Rishi

7
อ๊าาา! นี่น่าจะเป็นคำตอบของคำถาม สำหรับฉันมันเป็นตัวแปร PYTHONHOME ที่ตั้งค่าเป็นเส้นทางที่ไม่ถูกต้อง ... ลบออกและตอนนี้ก็ใช้งานได้! ดูเหมือนว่า Alien Swarm mod ของ Steam จะเพิ่มเข้ามา
Timotei

2
ไม่PYTHONPATH/PYTHONHOMEจำเป็นต้องตั้งค่าตัวแปรใด ๆ เพื่อให้ Python ค้นหาsite.pyโมดูลที่อยู่ในLibโฟลเดอร์ คำตอบนี้เป็นวิธีแก้ปัญหาที่ดีที่สุด
Piotr Dobrogost

3
ตัวแปรสภาพแวดล้อมเป็นฝันร้าย ฉันโทษลินุกซ์
Damien

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 ดูเหมือนว่าจะทำลาย aswel


3
ถ้าใน windows 10 ตอนนี้คือ setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto

สิ่งนี้ใช้ได้ผลสำหรับฉันบน 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 เอ็ลเดอร์


4

คุณกำลังพยายามเรียกใช้ Windows Python จาก Cygwin หรือไม่? ฉันมีปัญหาเดียวกัน Python ใน Cygwin ไม่สามารถนำเข้าไซต์ได้ Python ใน Cmd ใช้งานได้

ดูเหมือนว่าคุณต้องแน่ใจว่าคุณใช้งาน PYTHONHOME และ PYTHONPATH cygwin -awเพื่อทำให้เป็นเส้นทาง Windows นอกจากนี้ python ดูเหมือนจะใช้เส้นทางที่ไม่ถูกต้อง

ฉันคิดว่าฉันจะต้องติดตั้ง python ผ่าน cygwin เพื่อให้มันใช้งานได้


1
สวัสดีนี่อาจไม่ใช่ปัญหาสำหรับคุณ แต่ในกรณีที่คนอื่นมีปัญหานี้โปรดดูความคิดเห็นของฉันในคำถามหลัก โดยทั่วไปคุณต้องแปลงPYTHONPATHเป็นพา ธ สไตล์ windows ด้วยexport PYTHONPATH=$(cygpath -w $PYTHONPATH).
robert

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
Jean-François Fabre

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

สำหรับฉันมันเกิดขึ้นเพราะฉันติดตั้ง python 2 เวอร์ชัน - python 27 และ python 3.3 ทั้งสองโฟลเดอร์นี้มีชุดตัวแปรเส้นทางดังนั้นจึงมีปัญหานี้ ในการแก้ไขสิ่งนี้ฉันย้าย python27 ไปที่โฟลเดอร์ temp เนื่องจากฉันโอเคกับ python 3.3 ดังนั้นตรวจสอบตัวแปรสภาพแวดล้อมเช่น PATH, PYTHONHOME เนื่องจากอาจเป็นปัญหา ขอบคุณ.


1

หากมีคนพบว่ายังใช้งานไม่ได้กับผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบ:

ตัวอย่างข้อผิดพลาด:

ImportError: No module named iso8601

คุณต้องตั้งค่าตัวเลือก '- เสมอ - เปิดเครื่องรูด' สำหรับ easy_install:

easy_install --always-unzip python-keystoneclient

มันจะเปิดเครื่องรูดไฟล์ไข่ของคุณและจะอนุญาตให้นำเข้าเพื่อค้นหา em


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 ใช้ได้ดี
David Heffernan

ฉันติดตั้ง 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 ที่ติดตั้งจากนั้นกด Uninstall / Change
  3. ทำตามคำแนะนำเพื่อซ่อมแซมการติดตั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.