วิธีเริ่มเว็บเซิร์ฟเวอร์อย่างง่ายใน Python 3 บน Mac

สารบัญ:

Anonim

หากคุณเป็นผู้ใช้ Python คุณอาจคุ้นเคยกับเคล็ดลับที่มีประโยชน์ซึ่งช่วยให้คุณสร้างเว็บเซิร์ฟเวอร์อย่างง่ายได้ทันทีโดยใช้สตริงคำสั่งง่าย ๆ ที่ป้อนในบรรทัดคำสั่งของ Mac OS แต่ถ้าคุณเป็นผู้ใช้ Mac Python ที่ติดตั้งหรืออัปเดตเป็น Python 3 คุณจะพบว่าสตริงคำสั่งดั้งเดิมจาก Python เวอร์ชันก่อนหน้าไม่สามารถเริ่มต้นเว็บเซิร์ฟเวอร์ใน Python 3 ใหม่ได้x+ เผยแพร่

ไม่ต้องกังวล เคล็ดลับเว็บเซิร์ฟเวอร์อย่างง่าย Python ยังคงใช้งานได้ใน Python 3 สำหรับ Mac (และสำหรับ Linux และ Windows ด้วย แต่แน่นอนว่าเราครอบคลุมถึง MacOS) นั่นคือไวยากรณ์ของคำสั่งคือ ต่างกันเพียงเล็กน้อย เราจะแสดง วิธีเริ่มต้นเว็บเซิร์ฟเวอร์อย่างง่ายด้วย Python 3 โดยใช้คำสั่ง python -m SimpleHTTPServer ที่เทียบเท่ากับ Python 3.0+ ใหม่

วิธีเริ่ม Web HTTP Server ใน Python 3.0+

เราถือว่าคุณได้ติดตั้งหรืออัปเดตเป็น Python 3.0+ บน Mac แล้ว คำสั่งรูปแบบนี้ต้องใช้ Python 3.0 หรือใหม่กว่า

จากบรรทัดคำสั่ง ให้ป้อนไวยากรณ์ต่อไปนี้ให้ถูกต้อง:

python -m http.server

OR (ขึ้นอยู่กับวิธีการติดตั้งและตั้งชื่อ Python 3.x):

python3 -m http.server

Hit return และ Python 3 จะเริ่มเซิร์ฟเวอร์ HTTP อย่างง่ายทันทีจากไดเร็กทอรีที่เรียกใช้คำสั่ง

http.server ใน Python 3 จะทำงานในเทอร์มินัล หากไม่มีไฟล์เว็บในไดเร็กทอรี ดัชนีไดเร็กทอรีจะแสดงขึ้นเอง

คุณสามารถทดสอบได้ทันทีโดยเปิด URL ต่อไปนี้ในเว็บเบราว์เซอร์ใดก็ได้บนคอมพิวเตอร์:

http://0.0.0.0:8000

กิจกรรมเว็บเซิร์ฟเวอร์ทั้งหมด เช่น การเข้าถึงไฟล์แต่ละไฟล์ โฟลเดอร์ ไดเร็กทอรี ฯลฯ จะแสดงในหน้าต่างเทอร์มินัล Python ที่ใช้งานอยู่ตามที่เกิดขึ้น คล้ายกับการเรียงบันทึกเว็บบนเซิร์ฟเวอร์ Apache หรือ Nginx .

หมายเหตุสำคัญ: หากคุณติดตั้ง python และ python3 พร้อมกัน คุณอาจต้องเปลี่ยนไวยากรณ์เล็กน้อยเพื่ออ้างอิง python3 และ python2 หรือ python เวอร์ชันอื่น ซึ่งจะขึ้นอยู่กับว่าคุณอัปเดตเป็น Python 3 บน Mac อย่างไร แต่ตัวอย่างทั่วไปจะใช้คำสั่ง 'python3' แทน:

python3 -m http.server

เช่นเดิม กด return แล้วไดเรกทอรีที่ใช้งานอยู่จะกลายเป็นเว็บเซิร์ฟเวอร์

Python3 เทียบเท่ากับ python -m CGIHTTPServer คืออะไร

เคล็ดลับทั่วไปอีกอย่างคือการใช้เซิร์ฟเวอร์ CGI (Common Gateway Interface) ใน Python สำหรับสคริปต์ CGI ใน python หรือ perl ดังนั้นหากคุณต้องการรันคำสั่ง python3 ที่เทียบเท่ากับคำสั่ง “python -m CGIHTTPServer” สำหรับ CGI ก็จะเป็นดังนี้:

python3 -m http.server --cgi

อีกทางหนึ่ง หากติดตั้ง Python 3 และตั้งชื่อเป็น python คำสั่งจะเป็น:

python -m http.server --cgi

ไม่ว่าจะด้วยวิธีใดก็ตาม คุณจะต้องมีแฟล็ก –cgi เพื่อเริ่มเซิร์ฟเวอร์ CGI HTTP ใน Python 3

ฉันได้รับข้อผิดพลาดว่า “/usr/bin/python: ไม่มีโมดูลชื่อ http” แล้วอะไรล่ะ

หากคุณเห็นข้อผิดพลาด “/usr/bin/python: No module named http” เมื่อพยายามเรียกใช้สตริงคำสั่ง python -m http.server แสดงว่าเป็นไปได้มากว่าคุณไม่ได้ใช้งาน Python 3 หรือ คุณกำลังใช้คำสั่งที่ไม่ถูกต้องสำหรับ python3 (เช่น python vs python3 ขึ้นอยู่กับชื่อเวอร์ชันและวิธีการติดตั้งหรืออัปเดตบน Mac) อาจเป็นไปได้ว่า Python ไม่ได้ติดตั้งบนคอมพิวเตอร์เลย แม้ว่านั่นจะมีโอกาสน้อยกว่าสำหรับ Mac เนื่องจาก Python2 ได้รับการติดตั้งตามค่าเริ่มต้นบน Mac OS แม้ว่าผู้ใช้จะต้องติดตั้ง Python 3.x ที่อัปเดตบน Mac ด้วยตนเอง ซึ่งจะรักษาต้นฉบับไว้พร้อมกัน รุ่น Python 2.x ที่วางจำหน่าย โดยทั่วไปจะทำได้ด้วย Homebrew

เปลี่ยนไวยากรณ์ตามที่อ้างถึงข้างต้น หรือหากคุณใช้ Python เวอร์ชันก่อนหน้า ให้ลองใช้คำสั่ง “python -m SimpleHTTPServer” จาก Python 2 และเวอร์ชันก่อนหน้า

แน่นอนว่า python simple web servers ไม่ได้มีไว้สำหรับสภาพแวดล้อมที่ใช้งานจริงและเหมาะที่สุดสำหรับ scratchpad หรือสภาพแวดล้อมการทดสอบอย่างรวดเร็ว หากคุณต้องการเรียกใช้เว็บเซิร์ฟเวอร์ที่เปิดเผยต่อสาธารณะหรือโดยทั่วไปแล้วแข็งแกร่งกว่า คุณต้องใช้บางอย่างเช่น Apache หรือ Nginx แม้ว่าการกำหนดค่าเหล่านั้นทีละรายการบน Mac จะต้องมีการตั้งค่าบางอย่าง ตัวเลือกที่ง่ายกว่าสำหรับสภาพแวดล้อมเว็บเซิร์ฟเวอร์เต็มรูปแบบบน Mac คือการใช้ MAMP ซึ่งทำให้การตั้งค่าและเริ่มต้นสภาพแวดล้อม Apache, MySQL, PHP เต็มรูปแบบบน Mac ทำได้ง่ายอย่างที่คิด

คุณรู้เคล็ดลับหรือลูกเล่นของ Python ที่น่าสนใจอื่นๆ หรือไม่? คุณรู้หรือไม่ว่ามีสตริงคำสั่ง python ที่เป็นประโยชน์อื่น ๆ สำหรับการเริ่มต้นเซิร์ฟเวอร์ http หรือไม่? แบ่งปันกับเราในความคิดเห็นด้านล่าง!

วิธีเริ่มเว็บเซิร์ฟเวอร์อย่างง่ายใน Python 3 บน Mac