7
votes

Distribuer des scripts Python sans extension .py

Si j'écris un package en Python pour la distribution et que j'ai mis des scripts à considérer comme exécutables dans les scripts de setup.py , y a-t-il une norme façon de ne pas avoir la * extension de * .py? Est-il suffisant de simplement faire des fichiers qui ne possèdent pas la vulgarisation .PY ou est quelque chose de plus nécessaire? Supprimera le fichier .Py du nom de fichier qui brise l'une des fonctionnalités associées à des outils Python tels que setup.py / distutils, etc.? Merci.


1 commentaires

L'as tu essayé? J'ai fait ce genre de chose avec SeugoTools et cela a fonctionné simplement ... Donnez-le à l'essai - Installez votre module et voyez si distutils a remplacé le shebang avec le Shebang de votre python particulier. par exemple. #! / usr / bin / python27 ou quelque chose de similaire ...


3 Réponses :


2
votes

Le prolongement .py n'est nécessaire que lorsque vous souhaitez importer le modèle AFAICT. N'oubliez pas que pip , easy_install , et similaires sont simplement des fichiers exécutables avec le shebang en haut. Le seul système d'exploitation qui s'appuie sur les extensions de fichiers à des fins d'exécution est Windows.


0 commentaires

0
votes

Si le script est censé être exécuté à partir de la ligne de commande, le prolongement .PY ne fait rien pour vous. Le script sera exécuté à l'aide de l'interpréteur Python sous deux circonstances:

  1. Votre explicity a dit de le faire à la ligne de commande: $ python nomofyourscript
  2. Votre explicity a dit de le faire en incluant une shebang au sommet du script pointant vers Python. La version préférée de celle-ci est #! / Usr / bin / env python .

    En incluant un shebang dans chacun de vos scripts, vous pouvez nommer le fichier tout ce que vous voulez.

    Sans faire l'une de ces choses, le script sera exécuté sous forme de script normal désignant n'importe quelle coquille que vous utilisez.


0 commentaires

1
votes

Si vous avez besoin de compatibilité de Windows, ne supprimez pas l'option dactory ou utilisez SetOpTools 'CODE> ou UTILISEUPTOOLSS ou utilisez SetOpTools' Option qui génère automatiquement pour les fichiers de script système, par exemple, à Installez pip.main () fonction sous forme de script, pip spécifie dans setup.py : xxx

Il est judicieux d'utiliser dactylographies même si vous n'avez pas besoin de compatibilité de Windows, car il génère le shebang correct pour vous qui pointe vers un interprète python spécifique (où générique #! / USR / bin / bin / env python serait la mauvaise chose).


0 commentaires