Question Initialiser la mise en page du projet en Python?


Supposons qu'un programmeur ait le problème suivant: il veut lancer un nouveau projet python. Il a besoin d'une présentation de base de choses comme le répertoire de test, le répertoire source, le script setuptools, etc. Comment crée-t-il tout cela avec une seule commande?

Par exemple, paster (comme suggéré dans l'une des réponses, vous fournit ce service)

paster create 
Selected and implied templates: PasteScript#basic_package 
A basic setuptools-enabled package 

mais paster fait partie d'un outil dont le champ d'application principal n'est pas le déploiement de packages. Que faire si je veux avoir un modèle pour une bibliothèque et un modèle pour une application? Comment puis-je modifier le modèle pour y ajouter mes propres éléments personnels?


11
2017-11-26 12:02


origine


Réponses:


Vous avez besoin de quelque chose qui prend en charge la modélisation pour retirer ceci. Le plus utilisé dans la communauté python est pastescript.

easy_install pastescript # A one-time install
paster create

Si vous avez déjà choisi le nom du paquet, c'est juste:

paster create mypackage

Si vous souhaitez personnaliser le modèle, le plus simple est de créer votre propre package python qui inclut le modèle personnalisé souhaité. Une fois que vous l'avez installé dans votre environnement, vous pouvez ensuite utiliser ce modèle personnalisé autant que vous le souhaitez. (C'est le genre de chose utilisée par les frameworks comme les pylônes pour créer un modèle pour une application Web).

paster create -t libtemplate mypackage
paster create -t apptemplate mypackage

Pour plus de détails sur la création de modèles (composés d’un mélange de code et de fichiers source), consultez: http://pythonpaste.org/script/developer.html#templates  Vous remarquerez que les modèles prennent en charge l'héritage, de sorte que vous pouvez, par exemple, Il suffit de construire sur le modèle inclus ou de créer vos propres modèles à partir de zéro.

Pour un bon exemple de modèle personnalisé, vous pouvez consulter le modèle de pylônes dans source, ici: Code de modèle de pylônes

De plus, si vous ne l'utilisez pas déjà, vous devriez jeter un coup d'œil à virtualenv de Ian Bicking. Il vous permet de créer des environnements «virtuels» temporaires qui vous permettent d'installer des packages python sans utiliser et / ou en conflit avec les packages système que vous avez installés.

Une configuration standard avec virtualenv et pastescript pourrait ressembler à ceci:

mkdir mypackage && cd mypackage
virtualenv --distribute env
source env/bin/activate # 'Turns on / activates' the environment
easy_install pastescript
paster create mypackage

10
2017-11-26 12:07



j'utilise modern-package-template mettre en page mes projets Python.

modern-package-template est un modèle PasteScript permettant de créer une mise en page initiale pour vos projets Python à l'aide d'outils et de pratiques modernes suivis dans la communauté Python. Ainsi, vos projets auront les caractéristiques suivantes:

  • Utilisez Distribute au lieu de setuptools car le BDFL le soutient lui-même.
  • Support de construction, bien que vous ne soyez pas obligé de l'utiliser.
  • README.txt et NEWS.txt sont automatiquement inclus dans vos métadonnées de package en tant que long_description, ce qui les fait apparaître dans la page PyPI de votre projet.
  • Création automatique de script (ou .exe) en utilisant Distribute

Plus d'infos et téléchargement de pypi: http://pypi.python.org/pypi/modern-package-template


3
2018-05-18 12:22



Vous pouvez créer vos propres modèles. Très utile, par exemple pour les normes de structure de projet internes.

La meilleure façon de commencer à créer le vôtre est de commencer par un exemple existant et de copier / coller des bits pertinents. Suggestion: ZopeSkel comme c'est un assez gros avec beaucoup d'exemples. Feuilleter le code source.


1
2017-11-26 13:10



J'ai utilisé cuiseur. Il est écrit en python mais peut être utilisé pour tout type de projet; pas seulement python. Il utilise Jinja pour la création de gabarits et propose des pré et post-hooks (écrits en python ou en bash) qui peuvent facilement créer / gérer les virtualenvs ou tout ce que vous pouvez imaginer. Vous pouvez stocker vos propres modèles dans un répertoire local ou extraire d'autres personnes directement d'Internet et les exécuter sans les stocker localement en premier. Il semble beaucoup plus polyvalent, plus simple à utiliser, et plus utile à mon humble avis, puis à la pâture (divulgation: je n'ai pas essayé de pâte). Il est également en développement actif.


1
2017-07-08 16:38