Wat is het Python 3-equivalent van “python -m SimpleHTTPServer”

Wat is het Python 3-equivalent van python -m SimpleHTTPServer?


Antwoord 1, autoriteit 100%

Van de documenten:

De module SimpleHTTPServeris samengevoegd in http.serverin 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 2to3stdinals 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 -bof --bindVLAG.

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 pythongebruiken in plaats van python3voor het gebruik van Python 3.

Other episodes