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 code> de setup.py code>, 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 code> / distutils, etc.? Merci. P>
3 Réponses :
Le prolongement .py code> n'est nécessaire que lorsque vous souhaitez importer le modèle AFAICT. N'oubliez pas que
pip code>,
easy_install code>, 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. P>
Si le script est censé être exécuté à partir de la ligne de commande, le prolongement En incluant un shebang dans chacun de vos scripts, vous pouvez nommer le fichier tout ce que vous voulez. p>
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. P> .PY code> ne fait rien pour vous. Le script sera exécuté à l'aide de l'interpréteur Python sous deux circonstances: P>
$ python nomofyourscript code> li>
#! / Usr / bin / env python code>. Li>
ol>
Si vous avez besoin de compatibilité de Windows, ne supprimez pas l'option Il est judicieux d'utiliser dactory code> ou utilisez SetOpTools 'CODE> ou UTILISEUPTOOLSS ou utilisez SetOpTools' CODE> Option qui génère automatiquement pour les fichiers de script système, par exemple, à Installez
pip.main () code> fonction sous forme de script,
pip code> spécifie dans
setup.py code>:
dactylographies code> 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 code> serait la mauvaise chose). p> p>
L'as tu essayé? J'ai fait ce genre de chose avec
SeugoTools CODE> et cela a fonctionné simplement ... Donnez-le à l'essai - Installez votre module et voyez si
distutils code> a remplacé le shebang avec le Shebang de votre python particulier. par exemple.
#! / usr / bin / python27 code> ou quelque chose de similaire ...