Qu'est-ce que Python 3 équivalent de python -m SimpleHTTPServer
?
De les docs :
Le module
SimpleHTTPServer
a été fusionné avechttp.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
L'équivalent est:
python3 -m http.server
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
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.
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.