ImportError: Không có trang web có tên mô-đun nào trên Windows


101

Tôi đang cố gắng cài đặt Python lần đầu tiên. Tôi đã tải xuống trình cài đặt sau từ trang web Python: Trình cài đặt Windows Python 2.7.1 (Windows binary - không bao gồm nguồn) . Sau đó tôi chạy trình cài đặt, chọn 'Tất cả người dùng' và tất cả đều ổn. Tôi đã cài đặt Python vào vị trí mặc định:

C:\Python27

Tiếp theo, để kiểm tra xem Python đã được cài đặt đúng chưa, tôi đã điều hướng đến Thư mục Python của mình và chạy lệnh "python" trong dấu nhắc Windows cmd. Nó trả về cho tôi lỗi sau:

ImportError: Không có mô-đun có tên trang web

Khi tôi thực hiện 'python -v', tôi nhận được như sau:

#installing zipimport hook
import zipimport # builtin
#installed zipimport treo
#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 # khôi phục sys.stdout
#restore sys.stderr #cleanup main
#cleanup [1 ] zipimport #cleanup [1] signal
#cleanup[1 ] exceptions #cleanup [1] _warnings
#cleanup sys #cleanup builtin
#cleanup ints: 6 unfreed ints #cleanup float

Khi tôi làm điều đó, C:\Python27\Lib\site.py*tôi nhận được những điều sau:

C: \ Users \ Mimminito> dir C: \ Python27 \ Lib \ site.py *
Ổ đĩa C không có nhãn.
Số sê-ri của tập là DAB9-A863

Thư mục của C: \ Python27 \ Lib

13/11/2010 20:08 20,389 site.py
1 (Các) tệp 20,389 byte
0 Dir (các) 694,910,976 byte trống

Bất kỳ ý tưởng?


Giả sử bạn không thay đổi vị trí cài đặt mặc định, thì tệp C: /Python27/Lib/site.py có tồn tại trên máy tính của bạn không?
Tim W.

Có, site.py nằm trong thư mục đó
Mimminito

7
@Mimminito: Tôi tò mò (nhẹ nhàng) tại sao bạn biến mất trong 9 tháng và bây giờ mới chấp nhận câu trả lời của tôi, và (rất lớn) nếu bạn đã bao giờ tìm ra vấn đề cơ bản là gì.
John Machin

Tôi đang gặp vấn đề này. Tôi không biết tại sao và tôi đã tìm kiếm trên internet để tìm giải pháp. Nó liên tục thông báo ImportError: Không có mô-đun nào có tên trang web cho dù tôi cài đặt python như thế nào và những gì tôi đưa vào PATH của mình. Tôi muốn biết cách python thực sự tải site.py. Rõ ràng đây là một vấn đề về đường dẫn tương đối / tuyệt đối. Và Nếu tôi có thể định cấu hình trực tiếp đường dẫn của python mà không cần dùng đến những cú đâm ngẫu nhiên trong bóng tối.
CMCDragonkai

3
Tôi đã có vấn đề này. Tôi đang gọi từ Cygwin có đường dẫn giống unix cho PYTHONPATH. Tôi đã chuyển đổi nó thành đường dẫn kiểu windows export PYTHONPATH=$(cygpath -w $PYTHONPATH)và nó hoạt động tốt. Thêm ghi chú này để giúp những người khác có thể đến trang này với cùng một vấn đề.
robert

Câu trả lời:


145

Tôi đã tự tìm hiểu vấn đề này gần một ngày và cuối cùng đã có một bước đột phá. Thử cái này:

  1. Thiết lập PYTHONPATH / PYTHONHOME biến

    Nhấp chuột phải vào biểu tượng Máy tính trong menu bắt đầu , chuyển đến thuộc tính . Trên tab bên trái, chuyển đến Cài đặt hệ thống nâng cao . Trong cửa sổ xuất hiện, chuyển đến tab Nâng cao , sau đó nhấp vào Biến môi trường ở dưới cùng . Nhấp vào danh sách các biến người dùng và bắt đầu nhập Python, và lặp lại cho các biến Hệ thống , chỉ để đảm bảo rằng bạn không đặt sai biến cho PYTHONPATH hoặc PYTHONHOME. Tiếp theo, thêm các biến mới (tôi đã làm trong Hệ thống chứ không phải Người dùng, mặc dù nó cũng có thể hoạt động cho Người dùng): PYTHONPATH, đặt thành C: \ Python27 \ Lib . PYTHONHOME, được đặt thành C: \ Python27 .

Hi vọng điêu nay co ich!


7
Và bạn cũng cần phải nối% PYTHONHOME% vào biến đường dẫn của mình để biến này hoạt động.
Rishi

7
Aha! Đây nên là câu trả lời cho câu hỏi. Đối với tôi, đó là một biến PYTHONHOME được đặt thành một đường dẫn không hợp lệ ... Đã xóa biến đó và giờ nó HOẠT ĐỘNG! Có vẻ như mod Alien Swarm của Steam đã thêm điều đó.
Timotei

2
Không PYTHONPATH/PYTHONHOMEcần thiết lập biến nào để Python xác định vị trí site.pymô-đun được đặt trong Libthư mục. Câu trả lời này là một giải pháp tốt nhất.
Piotr Dobrogost

3
Các biến môi trường là một cơn ác mộng. Tôi đổ lỗi cho Linux.
Damien

1
Đảm bảo bạn không cài đặt đồng thời hai phiên bản Python. Điều này có thể làm rối trình thông dịch, nếu Python 2.7 đứng đầu tiên trong% PATH% và Python3 được đặt cho PYTHONHOME chẳng hạn.
LM.Croisez

41

Giải pháp nhanh: đặt PYTHONHOME và PYTHONPATH và đưa PYTHONHOME vào PATH

Ví dụ: nếu bạn đã cài đặt vào c: \ Python27

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

Đảm bảo rằng bạn không có dấu '\' trên các vars PYTHON *, điều này dường như làm hỏng nó.


3
Nếu trên windows 10, đây là: setx PYTHONHOME "C: \ Python27" setx PYTHONPATH "C: \ Python27 \ Lib" setx PATH "% PYTHONHOME%;% PATH%"
Vesanto

Điều này hoạt động tốt đối với tôi trên Windows 7 với Python 3.6
Khát khao Kiến thức

12

Tôi gặp sự cố này sau khi cài đặt cả Windows Python và Cygwin Python và cố gắng chạy Cygwin Python từ Cygwin. Tôi đã giải quyết nó bằng cách exportnhập PYTHONHOME = / usr / và PYTHONPATH = / usr / lib / python2.7


12

Đảm bảo rằng biến môi trường PYTHONHOME của bạn được đặt chính xác. Bạn sẽ nhận được lỗi này nếu PYTHONHOME đang trỏ đến vị trí không hợp lệ hoặc đến một cài đặt Python khác mà bạn đang cố gắng chạy.

Thử cái này:

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

Sử dụng

setx PYTHONHOME C:\Python27

để đặt điều này vĩnh viễn cho các lời nhắc lệnh tiếp theo


6
Sử dụng setx PYTHONHOME C:\Python27để đặt điều này vĩnh viễn cho các lời nhắc lệnh tiếp theo. Nếu không, bạn phải sử dụng lệnh set mọi lúc.
Iain Samuel McLean Elder.

5

Tìm site.py và thêm đường dẫn của nó trong PYTHONPATH . Điều này sẽ giải quyết vấn đề của bạn.


4

Bạn đang cố gắng chạy Windows Python từ Cygwin? Im có cùng một vấn đề. Python trong Cygwin không thể nhập trang web. Python trong Cmd hoạt động.

Có vẻ như bạn cần đảm bảo rằng bạn chạy PYTHONHOME và PYTHONPATH cygwin -awđể tạo đường dẫn Windows cho chúng. Ngoài ra, python dường như đang sử dụng một số đường dẫn không chính xác.

Tôi nghĩ mình sẽ cần cài đặt python thông qua cygwin để nó hoạt động.


1
Xin chào, đây có lẽ vẫn chưa phải là vấn đề đối với bạn, nhưng trong trường hợp người khác gặp vấn đề này, hãy xem bình luận của tôi về câu hỏi chính. Về cơ bản, bạn cần chuyển đổi PYTHONPATHsang đường dẫn kiểu cửa sổ với export PYTHONPATH=$(cygpath -w $PYTHONPATH).
robert

4

Đối với Windows 10 (theo dõi câu trả lời @slckin), điều này có thể được đặt thông qua dòng lệnh với:

setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"

6
Tôi sẽ không bao giờ sử dụng setx PATH "%PYTHONHOME%;%PATH%"vì nó đặt người dùng PATHbằng tổng đường dẫn người dùng và hệ thống. Tại địa phương (đang sử dụng set) thì không sao nhưng không sử dụngsetx
Jean-François Fabre

4

Trong trường hợp của tôi, sự cố là một tệp site.py khác, đã được giải quyết sớm hơn sự cố từ Python \ Lib, do cài đặt PATH.

Môi trường: Windows 10 Pro, Python27.

Máy tính để bàn của tôi đã được cài đặt pgAdmin, có tệp C: \ Program Files (x86) \ pgAdmin \ venv \ Lib \ site.py. Vì biến môi trường PATH có nhà của pdAdmin sớm hơn Python (có vẻ là một ý tưởng tồi ngay từ đầu), nên site.py của pgAdmin đã được tìm thấy đầu tiên.

Tất cả những gì tôi phải làm để khắc phục sự cố là chuyển nhà của pgAdmin muộn hơn Python, trong PATH


3

Đối với tôi, điều đó xảy ra vì tôi đã cài đặt 2 phiên bản python - python 27 và python 3.3. Cả hai thư mục này đều có biến đường dẫn được đặt và do đó có vấn đề này. Để khắc phục, tôi đã di chuyển python27 vào thư mục tạm thời, vì tôi thấy ổn với python 3.3. Vì vậy, hãy kiểm tra các biến môi trường như PATH, PYTHONHOME vì nó có thể là một vấn đề. Cảm ơn.


1

Nếu ai đó sẽ thấy rằng nó vẫn không hoạt động với người dùng không phải quản trị viên:

Lỗi ví dụ:

ImportError: No module named iso8601

bạn cần đặt tùy chọn '--always-unzip' cho easy_install:

easy_install --always-unzip python-keystoneclient

Nó sẽ giải nén các tệp trứng của bạn và cho phép nhập để tìm chúng.


1

Tôi đã gặp phải vấn đề tương tự ImportError: No module named sitekhi cài đặt python 2.7.11

Ban đầu tôi có Python2.5 và đường dẫn PYTHONHOME được đặt thành Python2.5. Tôi đã đổi tên nó thành C:\Python27\và nó đã giải quyết được sự cố.


0

Bạn có thể thử Thiết lập Python hoạt động nguồn mở , đây là một trình cài đặt Python được thực hiện tốt cho Windows. Bạn chỉ cần gỡ cài đặt phiên bản của mình và cài đặt nó ...


7
Trình cài đặt python.org rất tốt
David Heffernan

Tôi đã cài đặt Active Python trên máy tính xách tay của mình và cài đặt này rất tốt. Nhưng nó không hoạt động trên PC của tôi, tôi vẫn gặp lỗi tương tự
Mimminito

0

Tôi đã bình chọn câu trả lời của slckin. Vấn đề của tôi là tôi đã suy nghĩ và thêm dấu ngoặc kép xung quanh các đường dẫn. Tôi đã xóa dấu ngoặc kép trong cả ba biến: PYTHONHOME, PYTHONPATH và PATH. Lưu ý rằng đây là tệp cmd hoặc bat để thiết lập môi trường cho các công cụ khác. Tuy nhiên, dấu ngoặc kép có thể hữu ích trong cài đặt biểu tượng. Đánh máy

bộ

tiết lộ rằng các dấu ngoặc kép ở đâu trong đường dẫn và không bị rớt xuống như mong đợi. Tôi cũng đã rút ngắn PATH để nó dài dưới 256 ký tự.


-1

Tôi có một ứng dụng phụ thuộc rất nhiều vào Python và luôn cập nhật python 2.7.x khi các phiên bản mới được phát hành. Mọi thứ vẫn ổn cho đến ngày 2.7.11 khi tôi gặp No module named sitelỗi tương tự " ". Tôi đã đặt PYTHONHOME thành c:\Python27và nó đang hoạt động. Nhưng bí ẩn vẫn là lý do tại sao điều này bây giờ lại cần thiết khi nó không có trong các bản phát hành trước. Và, nếu cần, tại sao trình cài đặt không đặt var này?


-1

Tôi đã từng gặp vấn đề tương tự. Giải pháp của tôi là sửa chữa cài đặt Python. (Đó là một cài đặt mới nên tôi không mong đợi sự cố nhưng bây giờ nó đã được giải quyết.)

Để sửa chữa (Windows 7):

  1. đi tới Bảng điều khiển -> Chương trình -> Chương trình và Tính năng
  2. nhấp vào phiên bản Python đã cài đặt và sau đó nhấn Gỡ cài đặt / Thay đổi.
  3. làm theo hướng dẫn để sửa chữa cài đặt.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.