Python 3 ที่เทียบเท่ากับ“ python -m SimpleHTTPServer” คืออะไร


คำตอบ:


1774

จากเอกสาร :

SimpleHTTPServerโมดูลได้รับการรวมเข้าไปhttp.serverในหลาม 3.0 เครื่องมือ 2to3 จะปรับการนำเข้าโดยอัตโนมัติเมื่อแปลงแหล่งข้อมูลของคุณเป็น 3.0

ดังนั้นคำสั่งของคุณคือpython -m http.serverหรือขึ้นอยู่กับการติดตั้งของคุณก็สามารถ:

python3 -m http.server

88
ในหลาม 3.3 เปลี่ยนสำหรับเป็นpython -m CGIHTTPServer python3 -m http.server --cgi
bseibold

17
แน่นอนเพียงแค่ตรึงไว้ที่ส่วนท้ายของบรรทัดคำสั่ง อ่านpython3 -m http.server --helpสำหรับ args & options ทั้งหมด
Petr Viktorin

29
python -m http.serverทำงานให้ฉัน ฉันต้องลบ3
nu everest

14
@nueverest ขึ้นอยู่กับการติดตั้ง Python ของคุณว่า 'ชื่อ' โดยปกติ Python2 สามารถใช้ได้เป็นpythonและ Python3 เป็นpython3แต่บางคนชอบที่จะติดตั้ง Python3 pythonเป็นเพียง
เสา

3
AFAIK บน Windows จะติดตั้งpythonตามค่าเริ่มต้น แต่คำถามสำหรับpython3:)
Petr Viktorin

274

เทียบเท่าคือ:

python3 -m http.server

46
และpython3 -m http.server 8080ถ้าคุณต้องผูกกับพอร์ต อ่านเพิ่มเติมในตอนท้ายของส่วน: docs.python.org/3/library/…
AdamKalisz

4
โดยค่าเริ่มต้นมันจะผูกกับพอร์ต 8000 ดูpython3 -m http.server --helpรายละเอียด
stephenwade

153

ใช้ยูทิลิตี้ 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

นอกเหนือจากคำตอบของ Petr หากคุณต้องการผูกกับอินเตอร์เฟสเฉพาะแทนอินเตอร์เฟสทั้งหมดที่คุณสามารถใช้-bหรือ--bindตั้งค่าสถานะ

python -m http.server 8000 --bind 127.0.0.1

ตัวอย่างข้างต้นควรทำเคล็ดลับ 8000 คือหมายเลขพอร์ต 80 ใช้เป็นพอร์ตมาตรฐานสำหรับการสื่อสาร HTTP


python -m http.server 8081 - ผูก 127.0.0.1 หาก 8000 ของคุณกำลังถูกใช้โดยโปรแกรมอื่น
Haris Np

หากคุณไม่ได้อยู่ในสภาพแวดล้อมเสมือนจริงที่คุณใช้ Python3 โปรดใช้ python3 -m http.server 8081 --bind 127.0.0.1 มิฉะนั้นคุณจะได้รับข้อผิดพลาดที่ / usr / bin / python: ไม่มีโมดูลชื่อ http
Haris Np

7

ในหนึ่งในโครงการของฉันฉันรันการทดสอบกับ Python 2 และ 3 เพื่อที่ฉันจะเขียนสคริปต์ขนาดเล็กที่เริ่มต้นเซิร์ฟเวอร์ภายในอิสระ

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

เป็นนามแฝง:

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

โปรดทราบว่าฉันควบคุมเวอร์ชัน Python ของฉันผ่านสภาพแวดล้อม condaเพราะฉันสามารถใช้pythonแทนpython3การใช้ Python 3

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