it-swarm.com.de

Was ist das Python 3-Äquivalent zu "python -m SimpleHTTPServer"?

Was ist das Äquivalent von Python 3 zu python -m SimpleHTTPServer?

1062
ryanbraganza

Von den Dokumenten :

Das SimpleHTTPServer -Modul wurde in http.server in Python 3.0 zusammengeführt. Das 2to3-Tool passt die Importe automatisch an, wenn Sie Ihre Quellen in 3.0 konvertieren.

Ihr Befehl lautet also python -m http.server, oder abhängig von Ihrer Installation kann es sein:

python3 -m http.server
1524
Petr Viktorin

Das Äquivalent ist:

python3 -m http.server
241
Greg Hewgill

2to3-Dienstprogramm verwenden.

$ 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
142
shantanoo

Zusätzlich zu Petrs Antwort können Sie -b/- bind flag verwenden, wenn Sie an eine bestimmte Schnittstelle statt an alle Schnittstellen binden möchten.

python -m http.server 8000 --bind 127.0.0.1

Das obige Snippet sollte den Trick machen. 8000 ist die Portnummer. 80 wird als Standardport für die HTTP-Kommunikation verwendet.

61
Eswar Yaganti

In einem meiner Projekte führe ich Tests gegen Python 2 und 3 durch. Dazu habe ich ein kleines Skript geschrieben, das einen lokalen Server selbständig startet:

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

Bitte beachten Sie, dass ich meine Python -Version über Conda-Umgebungen steuere. Daher kann ich python anstelle von python3 für die Verwendung von Python 3 verwenden.

3
Darius M.