web-dev-qa-db-fra.com

Quel est l'équivalent Python 3 de "python -m SimpleHTTPServer"

Qu'est-ce que Python 3 équivalent de python -m SimpleHTTPServer?

1062
ryanbraganza

De les docs :

Le module SimpleHTTPServer a été fusionné avec http.server dans Python 3.0. L'outil 2to3 adaptera automatiquement les importations lors de la conversion de vos sources vers la version 3.0.

Donc, votre commande est python -m http.server, ou selon votre installation, ce peut être:

python3 -m http.server
1524
Petr Viktorin

L'équivalent est:

python3 -m http.server
241
Greg Hewgill

Utilisation de l'utilitaire 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
142
shantanoo

En plus de la réponse de Petr, si vous souhaitez vous lier à une interface spécifique au lieu de toutes les interfaces, vous pouvez utiliser l'indicateur -b/- bind.

python -m http.server 8000 --bind 127.0.0.1

L'extrait ci-dessus devrait faire l'affaire. 8000 est le numéro de port. 80 est utilisé comme port standard pour les communications HTTP.

61
Eswar Yaganti

Dans l'un de mes projets, j'exécute des tests sur Python 2 et 3. Pour cela, j'ai écrit un petit script qui démarre un serveur local de manière indépendante:

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

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

Veuillez noter que je contrôle ma version Python via conda environment , pour cette raison, je peux utiliser python au lieu de python3 pour utiliser Python 3.

3
Darius M.