Python 3 tương đương với python -m SimpleHTTPServer 'là gì


Câu trả lời:


1774

Từ các tài liệu :

Các SimpleHTTPServermô-đun đã được sáp nhập vào http.serverbằng Python 3.0. Công cụ 2to3 sẽ tự động điều chỉnh nhập khẩu khi chuyển đổi nguồn của bạn thành 3.0.

Vì vậy, lệnh của bạn là python -m http.server, hoặc tùy thuộc vào cài đặt của bạn, nó có thể là:

python3 -m http.server

88
Trong Python 3.3, sự thay thế cho python -m CGIHTTPServerpython3 -m http.server --cgi.
bseibold

17
Chắc chắn, chỉ cần giải quyết nó vào cuối dòng lệnh. Đọc python3 -m http.server --helpcho tất cả các đối số và tùy chọn.
Petr Viktorin

29
python -m http.serverđã làm cho tôi. Tôi đã phải xóa3
nu everest

14
@nueverest Nó phụ thuộc vào cách cài đặt Python của bạn được 'đặt tên'. Thông thường Python2 có sẵn như pythonvà Python3 python3nhưng một số thích cài đặt Python3 đơn giản như python.
Mast

3
AFAIK, trên Windows, nó sẽ cài đặt pythontheo mặc định. Nhưng, câu hỏi là dành cho python3:)
Petr Viktorin

274

Tương đương là:

python3 -m http.server

46
python3 -m http.server 8080nếu bạn cần liên kết với một cổng. Đọc thêm ở phần cuối của phần này: docs.python.org/3/library/...
AdamKalisz

4
Theo mặc định, nó sẽ liên kết với cổng 8000. Xem python3 -m http.server --helpđể biết chi tiết.
stephenwade

153

Sử dụng tiện ích 2to3.

$ cat try.py
import SimpleHTTPServer

$ 2to3 try.py
RefactoringTool: Skipping implicit fixer: buffer
RefactoringTool: Skipping implicit fixer: idioms
RefactoringTool: Skipping implicit fixer: set_literal
RefactoringTool: Skipping implicit fixer: ws_comma
RefactoringTool: Refactored try.py
--- try.py  (original)
+++ try.py  (refactored)
@@ -1 +1 @@
-import SimpleHTTPServer
+import http.server
RefactoringTool: Files that need to be modified:
RefactoringTool: try.py

88

Ngoài câu trả lời của Petr, nếu bạn muốn liên kết với một giao diện cụ thể thay vì tất cả các giao diện bạn có thể sử dụng -bhoặc --bindgắn cờ.

python -m http.server 8000 --bind 127.0.0.1

Đoạn trích trên nên làm thủ thuật. 8000 là số cổng. 80 được sử dụng làm cổng tiêu chuẩn cho truyền thông HTTP.


python -m http.server 8081 --bind 127.0.0.1 Nếu 8000 của bạn đang được sử dụng bởi một chương trình khác.
Haris Np

Nếu bạn không ở trong môi trường ảo nơi bạn đang chạy Python3, vui lòng sử dụng python3 -m http.server 8081 --bind 127.0.0.1, nếu không bạn sẽ gặp lỗi / usr / bin / python: Không có mô-đun có tên http
Haris Np

7

Trong một trong các dự án của tôi, tôi chạy thử nghiệm với Python 2 và 3. Vì vậy, tôi đã viết một tập lệnh nhỏ khởi động máy chủ cục bộ một cách độc lập:

$ python -m $(python -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')
Serving HTTP on 0.0.0.0 port 8000 ...

Như một bí danh:

$ alias serve="python -m $(python -c 'import sys; print("http.server" if sys.version_info[:2] > (2,7) else "SimpleHTTPServer")')"
$ serve
Serving HTTP on 0.0.0.0 port 8000 ...

Xin lưu ý rằng tôi kiểm soát phiên bản Python của mình thông qua môi trường conda , vì điều đó tôi có thể sử dụng pythonthay vì python3sử dụng Python 3.

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.