Comment démarrer un serveur Web simple en Python 3 sur Mac

Table des matières:

Anonim

Si vous êtes un utilisateur de Python, vous connaissez peut-être déjà l'astuce pratique qui vous permet de créer instantanément un serveur Web simple à l'aide d'une chaîne de commande simple entrée dans la ligne de commande de Mac OS. Mais si vous êtes un utilisateur Mac Python qui a installé ou mis à jour Python 3, vous constaterez que la chaîne de commande traditionnelle des versions précédentes de Python ne fonctionne pas pour lancer le serveur Web dans le nouveau Python 3.x+ versions.

Ne vous inquiétez pas, l'astuce simple du serveur Web Python fonctionne toujours dans Python 3 pour Mac (et pour Linux et Windows aussi bien sûr, mais nous couvrons évidemment MacOS), c'est que la syntaxe de la commande est juste légèrement différent. Nous allons vous montrer comment démarrer un serveur Web simple avec Python 3 en utilisant le nouvel équivalent Python 3.0+ de la commande python -m SimpleHTTPServer.

Comment démarrer un serveur Web HTTP en Python 3.0+

Nous supposons que vous avez déjà installé ou mis à jour Python 3.0+ sur Mac, cette variante de la commande nécessite Python 3.0 ou une version plus récente.

Depuis la ligne de commande, saisissez exactement la syntaxe suivante :

python -m http.server

OU (selon la manière dont Python 3.x est installé et nommé) :

python3 -m http.server

Appuyez sur retour et Python 3 démarrera instantanément un serveur HTTP simple à partir du répertoire dans lequel la commande a été exécutée.

Le http.server en Python 3 s'exécutera dans le terminal, s'il n'y a pas de fichier Web dans le répertoire, l'index du répertoire lui-même sera affiché.

Vous pouvez le tester immédiatement en ouvrant l'URL suivante dans n'importe quel navigateur Web sur l'ordinateur :

http://0.0.0.0:8000

Toutes les activités du serveur Web, telles que l'accès à des fichiers, dossiers, répertoires, etc., seront affichées dans la fenêtre active du terminal Python en direct, un peu comme les journaux Web sur un serveur Apache ou Nginx .

Remarque importante : si vous avez installé python et python3 simultanément, vous devrez peut-être modifier légèrement la syntaxe pour référencer python3 et python2 ou une autre version de python. Cela dépendra de la façon dont vous avez mis à jour Python 3 sur le Mac, mais un exemple courant consisterait à utiliser la commande "python3" à la place :

python3 -m http.server

Comme avant, appuyez sur Entrée et le répertoire actif sera transformé en serveur Web.

Quel est l'équivalent Python3 de python -m CGIHTTPServer ?

Une autre astuce courante consiste à utiliser le serveur CGI (Common Gateway Interface) en Python pour les scripts CGI en python ou perl. Ainsi, si vous devez exécuter l'équivalent python3 de la commande "python -m CGIHTTPServer" pour CGI, ce serait comme suit :

python3 -m http.server --cgi

Alternativement, si Python 3 est installé et nommé python, la commande serait simplement :

python -m http.server --cgi

Dans tous les cas, vous aurez besoin de l'indicateur –cgi pour démarrer le serveur HTTP CGI dans Python 3.

J'obtiens une erreur indiquant "/usr/bin/python : aucun module nommé http" et maintenant ?

Si vous voyez une erreur "/usr/bin/python : aucun module nommé http" lorsque vous essayez d'exécuter la chaîne de commande python -m http.server, vous n'exécutez probablement pas Python 3, ou vous utilisez la mauvaise commande pour python3 (c'est-à-dire python vs python3, selon la façon dont la version est nommée et comment elle a été installée ou mise à jour sur le Mac). Il est également possible que Python ne soit pas du tout installé sur l'ordinateur, bien que cela soit moins probable pour les Mac car Python2 est installé par défaut sur Mac OS, bien que les utilisateurs doivent installer manuellement la mise à jour Python 3.x sur le Mac, qui préserve simultanément l'original Version de Python 2.x. Généralement, cela est réalisé avec Homebrew.

Modifiez la syntaxe comme indiqué ci-dessus, ou si vous utilisez une version antérieure de Python, essayez la commande "python -m SimpleHTTPServer" de Python 2 et versions antérieures.

Bien sûr, les serveurs Web simples en python ne sont pas destinés aux environnements de production et ils sont vraiment idéaux pour un bloc-notes rapide ou un environnement de test. Si vous souhaitez exécuter un serveur Web accessible au public ou simplement plus robuste en général, vous voudrez peut-être utiliser quelque chose comme Apache ou Nginx, bien que les configurer individuellement sur un Mac nécessite une certaine configuration. Une option plus simple pour un environnement de serveur Web complet sur Mac consiste à utiliser MAMP, ce qui rend la configuration et le démarrage d'un environnement Apache, MySQL, PHP complet sur Mac aussi simple que possible.

Connaissez-vous d'autres trucs ou astuces Python intéressants ? Connaissez-vous d'autres chaînes de commande python utiles pour démarrer des serveurs http ou autrement ? Partagez avec nous dans les commentaires ci-dessous !

Comment démarrer un serveur Web simple en Python 3 sur Mac