Wat is het Python 3-equivalent van python -m SimpleHTTPServer
?
Antwoord 1, autoriteit 100%
Van de documenten:
De module
SimpleHTTPServer
is samengevoegd inhttp.server
in Python 3.0. De 2to3-tool past de import automatisch aan bij het converteren van je bronnen naar 3.0.
Dus je commando is python -m http.server
, of afhankelijk van je installatie kan het zijn:
python3 -m http.server
Antwoord 2, autoriteit 15%
Het equivalent is:
python3 -m http.server
Antwoord 3, autoriteit 8%
Met behulp van 2to3-hulpprogramma.
$ 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
Zoals veel *nix utils, accepteert 2to3
stdin
als het doorgegeven argument -
is. Daarom kunt u testen zonder bestanden te maken, zoals:
$ 2to3 - <<< "import SimpleHTTPServer"
Antwoord 4, autoriteit 5%
Naast Petr’s antwoord, als u wilt binden aan een specifieke interface in plaats van alle interfaces die u kunt gebruiken -b
of --bind
VLAG.
python -m http.server 8000 --bind 127.0.0.1
Het bovenstaande fragment moet de truc doen. 8000 is het poortnummer. 80 wordt gebruikt als de standaardpoort voor HTTP-communicatie.
5
In een van mijn projecten voer ik tests uit tegen Python 2 en 3. Daarvoor schreef ik een klein script dat een lokale server onafhankelijk start:
$ 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 ...
Als alias:
$ 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 ...
Houd er rekening mee dat ik mijn Python-versie bestuur via Conda-omgevingen , want dat kan ik python
gebruiken in plaats van python3
voor het gebruik van Python 3.