¿Cuál es el equivalente de Python 3 python -m SimpleHTTPServer
?
¿Cuál es el equivalente de Python 3 python -m SimpleHTTPServer
?
Respuestas:
De los documentos :
El
SimpleHTTPServer
módulo se ha fusionadohttp.server
en Python 3.0. La herramienta 2to3 adaptará automáticamente las importaciones al convertir sus fuentes a 3.0.
Entonces, su comando es python -m http.server
, o dependiendo de su instalación, puede ser:
python3 -m http.server
python3 -m http.server --help
para todos los argumentos y opciones.
python -m http.server
trabajó para mi. Tuve que quitar el3
python
y Python3 como, python3
pero algunos prefieren instalar Python3 simplemente como python
.
python
predeterminada. Pero, la pregunta es para python3
:)
El equivalente es:
python3 -m http.server
python3 -m http.server 8080
si necesitas unirte a un puerto. Lea más al final de la sección: docs.python.org/3/library/…
python3 -m http.server --help
para más detalles.
Usando la utilidad 2to3.
$ 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
Además de la respuesta de Petr, si desea vincularse a una interfaz específica en lugar de todas las interfaces que puede usar -b
o --bind
marcar.
python -m http.server 8000 --bind 127.0.0.1
El fragmento anterior debería hacer el truco. 8000 es el número de puerto. 80 se utiliza como puerto estándar para las comunicaciones HTTP.
En uno de mis proyectos ejecuto pruebas contra Python 2 y 3. Para eso escribí un pequeño script que inicia un servidor local de forma independiente:
$ 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 ...
Como un 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 ...
Tenga en cuenta que controlo mi versión de Python a través de entornos conda , por eso puedo usar en python
lugar de python3
usar Python 3.
python -m CGIHTTPServer
espython3 -m http.server --cgi
.