Cum să porniți un server web simplu în Python 3 pe Mac
Cuprins:
Dacă sunteți utilizator Python, este posibil să fiți deja familiarizat cu trucul la îndemână care vă permite să creați instantaneu un server web simplu folosind un șir de comandă ușor introdus în linia de comandă a Mac OS. Dar dacă sunteți un utilizator Mac Python care a instalat sau actualizat la Python 3, atunci veți descoperi că șirul de comandă tradițional din versiunile Python anterioare nu funcționează pentru a iniția serverul web în noul Python 3.lansări x+.
Nu vă faceți griji, trucul simplu al serverului web Python încă funcționează în Python 3 pentru Mac (și pentru Linux și Windows, desigur, dar, evident, acoperim MacOS), este că sintaxa comenzii este doar puțin diferit. Vă vom arăta cum să porniți un server web simplu cu Python 3 folosind noul echivalent Python 3.0+ al comenzii python -m SimpleHTTPServer.
Cum să porniți un server HTTP web în Python 3.0+
Presumăm că ați instalat sau actualizat deja la Python 3.0+ pe Mac, această variantă a comenzii necesită Python 3.0 sau mai nou.
Din linia de comandă, introduceți exact următoarea sintaxă:
python -m http.server
SAU (în funcție de cum este instalat și numit Python 3.x):
python3 -m http.server
Hit return și Python 3 va porni instantaneu un server HTTP simplu din directorul în care a fost executată comanda.
Serverul http.din Python 3 va rula în terminal, dacă nu există niciun fișier web în director, va fi afișat indexul directorului în sine.
Puteți testa acest lucru imediat deschizând următoarea adresă URL în orice browser web de pe computer:
http://0.0.0.0:8000
Toată activitatea serverului web, cum ar fi accesarea fișierelor, folderelor, directoarelor, etc. individuale, va fi afișată în fereastra terminalului activ Python în direct, așa cum se întâmplă, un fel ca urmărirea jurnalelor web pe un server Apache sau Nginx .
Notă importantă: dacă aveți instalate python și python3 concomitent, poate fi necesar să modificați ușor sintaxa pentru a face referire la python3 și python2 sau la o altă versiune python. Acest lucru va depinde de modul în care ați actualizat la Python 3 pe Mac, dar un exemplu comun ar fi folosirea comenzii „python3” în schimb:
python3 -m http.server
La fel ca înainte, apăsați Retur și directorul activ va fi transformat într-un server web.
Care este echivalentul Python3 al lui python -m CGIHTTPServer?
Un alt truc comun este folosirea serverului CGI (Common Gateway Interface) în Python pentru scripturi CGI în python sau perl. Astfel, dacă trebuie să rulați echivalentul python3 al comenzii „python -m CGIHTTPServer” pentru CGI, aceasta ar fi după cum urmează:
python3 -m http.server --cgi
În mod alternativ, dacă Python 3 este instalat și numit ca python, comanda ar fi pur și simplu:
python -m http.server --cgi
În orice caz, veți avea nevoie de indicatorul –cgi pentru a porni serverul HTTP CGI în Python 3.
Primesc o eroare care spune „/usr/bin/python: Niciun modul numit http” acum ce?
Dacă vedeți o eroare „/usr/bin/python: No module named http” când încercați să executați șirul de comandă python -m http.server, atunci cel mai probabil nu rulați Python 3 sau utilizați o comandă greșită pentru python3 (adică python vs python3, în funcție de cum este numită versiunea și de cum a fost instalată sau actualizată pe Mac). De asemenea, este posibil ca Python să nu fie instalat deloc pe computer, deși acest lucru este mai puțin probabil pentru Mac-uri, deoarece Python2 este instalat implicit pe Mac OS, deși utilizatorii trebuie să instaleze manual Python 3.x actualizat pe Mac, care păstrează simultan versiunea originală. Versiunea de lansare Python 2.x. De obicei, acest lucru se realizează cu Homebrew.
Schimbați sintaxa așa cum s-a menționat mai sus sau, dacă utilizați o versiune anterioară de Python, încercați comanda „python -m SimpleHTTPServer” de la Python 2 și înainte.
Desigur, serverele web simple Python nu sunt destinate mediilor de producție și sunt într-adevăr cele mai bune pentru un scratchpad rapid sau un mediu de testare. Dacă doriți să rulați un server web care se confruntă cu publicul sau doar mai robust în general, ați dori să mergeți cu ceva precum Apache sau Nginx, deși configurarea acestora individual pe un Mac necesită o anumită configurare. O opțiune mai simplă pentru un mediu de server web complet pe Mac este utilizarea MAMP, ceea ce face ca configurarea și pornirea unui mediu complet Apache, MySQL, PHP pe Mac să fie la fel de simplă.
Cunoașteți și alte sfaturi sau trucuri interesante Python? Cunoașteți alte șiruri de comandă Python utile pentru pornirea serverelor http sau altfel? Distribuie cu noi în comentariile de mai jos!