Autour de l'installation du framework de gestion de projet Python Trac

trac_logo.png

0. Introduction

Du coup, j'ai voulu faire du développement basé sur les tickets, et j'étais curieux de savoir ce qui était arrivé à Trac, qui était populaire il y a quelques années et je n'en entends plus beaucoup parler maintenant, alors je l'ai installé.

En parlant de Trac, Trac Lightning pour Windows est célèbre, mais pour être honnête, je ne le recommande pas aux programmeurs. C'est parce que Trac Lightning met divers plug-ins dans la robustesse, et honnêtement, les fonctions que je n'utilise pas du tout interfèrent avec lui, et il est gênant de les supprimer un par un, donc cette fois j'ai installé et exploité pure Trac. L'histoire à faire.

Cette histoire est Je parle basé sur ** Trac ver 1.0.4 **.

Les informations sur la v0.1 et la v0.12, qui est le Trac le plus populaire, sont sur le WEB, mais cette fois j'utiliserai la dernière v1.0.4. Les réglages sont différents! Veuillez ne pas pleurer. (Personne pleurée w

1. Télécharger

Comme il est fait de Python, il peut être installé avec pip.

seulement ça. (Comme prévu, Python! J'en tombe amoureux w j'en ai envie w)

2. Préférences et initialisation de Trac

Créez un dossier pour enregistrer l'ensemble des projets exploités par Trac.

Pour le moment, j'ai créé un dossier appelé Main.

Vous pouvez configurer Trac avec trac-admin. ./Main est le répertoire que vous venez de créer initenv consiste à initialiser dans ce répertoire.

Donc, quand j'appuie sur la commande, cela ne ressemble pas à ce qui suit ... C'est en fait l'anglais, alors veuillez procéder d'une manière ou d'une autre.

Screenshot from 2015-03-01 20:12:36.png

Il y a deux éléments. Nom du projet et sélection de la base de données. Le nom du projet est principal cette fois La base de données est simplement entrée et utilise le SQLite par défaut. SQLite meilleur w

3. Démarrez le serveur

Je déteste Apache (parce que c'est énorme au-delà de ma compréhension), donc cette fois c'est Python, alors pourquoi ne pas avoir un simple serveur? Je pensais qu'il était inclus dans Trac en standard.

tracd est l'application serveur de Trac, --port est le paramètre du numéro de port, mais --host est également disponible. Le reste est la déclaration du répertoire.

Lancez progressivement le navigateur et essayez d'accéder à localhost: 1121 au démon suspect.

Screenshot from 2015-03-01 20:15:15.png

Ensuite, le site suivant apparaîtra, et lorsque vous cliquez sur le lien,

Screenshot from 2015-03-01 20:15:38.png

Sera. (Oh? Je suis désolé si vous avez remarqué que le menu est en anglais, veuillez comprendre que j'écrirai la méthode de japonaisisation plus tard.)

Toutes nos félicitations. L'installation de Trac s'est terminée avec succès. Vient ensuite l'histoire des mots de passe et de la localisation japonaise.

4. Créez un mot de passe

La connexion avec Trac sera une connexion de base. Je pense que j'aurais pu sélectionner d'autres méthodes de connexion, mais je ne suis pas sûr, alors je vais passer.

Donc, ici aussi, divers sites disent utiliser Apachi, mais ici nous générons du code de hachage avec Python.

pass.py


from optparse import OptionParser
import md5

# build the options
usage = "usage: %prog [options]"
parser = OptionParser(usage=usage)
parser.add_option("-u", "--username",action="store", dest="username", type = "string",
                  help="the username for whom to generate a password")
parser.add_option("-p", "--password",action="store", dest="password", type = "string",
                  help="the password to use")
(options, args) = parser.parse_args()

# check options
if (options.username is None) or (options.password is None):
   parser.error("You must supply both the username and password")
   
# Generate the string to enter into the htdigest file
realm = 'trac'
kd = lambda x: md5.md5(':'.join(x)).hexdigest()
str = ':'.join((options.username, realm, kd([options.username, realm, options.password])))

f = open("login","w")
f.write(str)
f.close()

Une petite modification de l'échantillon officiel,

5. Connexion

Maintenant que le fichier de connexion est créé, redémarrez le serveur.

Comme vous pouvez le voir, --auth a été ajouté. --auth est --auth = , , . La formule est écrite avec un nom différent, mais elle ressemble à mon image.

Si vous démarrez avec ceci, si vous allez en toute sécurité, l'onglet de création de ticket augmentera.

6. Localisation japonaise

Trac utilise Subversion, alors mettez-le en premier.

Mettez-le dans quelque chose comme ça

Ensuite, téléchargez le fichier et

Installez avec.

Et quand je relance Tracd, je trouve que le menu est un peu japonais.

7. Enfin

Je ne pense pas que beaucoup de gens connaissent Trac maintenant, alors http://ja.wikipedia.org/wiki/Trac C'est un peu vieux http://itpro.nikkeibp.co.jp/article/COLUMN/20080414/298973/ Vous pourrez peut-être saisir la situation si vous voyez (Honnêtement, le moment où le Trac et la billetterie sont devenus populaires était vers 2010, il peut donc y en avoir de meilleurs maintenant. De plus, Trac est devenu Ver1.0 en 2012, et maintenant Ver1.0.4. )

La raison pour laquelle j'ai choisi Trac est parce qu'il est fabriqué par Python! !! C'est w

8. Tricks tech?

Si vous avez besoin d'une sauvegarde, vous pouvez copier l'ensemble des répertoires spécifiés par trac-admin. C'est merveilleux. De plus, il y a du SQLite brut dans le répertoire db, vous pouvez donc même le reconstruire. Génial.

De plus, si vous avez plusieurs projets, utilisez trac-admin pour en créer un nouveau ou copier un fichier existant.

tracd --host $HOST --port PORT --auth=*,login,trac ./Project1 
--auth=*,login,trac ./$Project2 \

Ce n'est pas grave si vous créez un beau script. Génial.

Puisque Trac est fait par Python, il y a probablement plus d'astuces. Même en ce qui concerne le serveur, je me demande si cela peut être fait car il fonctionne sur uwsgi ~ Fufufu w Excusez-moi d'être mauvais. w

Recommended Posts

Autour de l'installation du framework de gestion de projet Python Trac
Le modèle de projet Python auquel je pense.
le zen de Python
Installation de Python 3.3 rc1
Installation de matplotlib (Python 3.3.2)
[Recette du formateur] J'ai touché le flacon du framework Python.
Tâches au démarrage d'un nouveau projet python
Vers la retraite de Python2
À propos des fonctionnalités de Python
Installation source et installation de Python
Le pouvoir des pandas: Python
Installation des paramètres initiaux Mac-Python (pyenv) au plus vite
Mémorandum de l'outil de gestion de paquets Python ez_setup
L'histoire de Python et l'histoire de NaN
Installer SciPy et matplotlib (Python)
[Python] La pierre d'achoppement de l'importation
First Python 3 ~ Le début de la répétition ~
[Compris dans la figure] Gestion de l'environnement virtuel Python par Pipenv
Existence du point de vue de Python
pyenv-changer la version python de virtualenv
[Python] Comprendre le potentiel_field_planning de Python Robotics
Installation de Python, SciPy, matplotlib (Windows)
Revue des bases de Python (FizzBuzz)
À propos de la liste de base des bases de Python
Apprenez les bases de Python ① Débutants élémentaires
Essayez d'utiliser le framework web de Python Django (1) - De l'installation au démarrage du serveur
Installation du code Visual Studio et installation de python
Présentation du framework BOT Minette pour Python
Changer la longueur des chaînes csv Python
Vérifiez le comportement du destroyer en Python
Comprendre la commodité de Django Rest Framework
[Python3] Comprendre les bases de Beautiful Soup
Passez le chemin du module python importé
Installation de Python et gestion des packages avec pip
Notes d'apprentissage depuis le début de Python 1
Vérifier l'existence du fichier avec python
À propos de l'environnement virtuel de Python version 3.7
[Python3] Réécrire l'objet code de la fonction
Je ne connaissais pas les bases de Python
Le résultat de l'installation de python sur Anaconda
[Python] Essayez pydash de la version Python de lodash
[python] Vérifier la consommation de mémoire des variables
Vérifiez le chemin du module importé Python
L'histoire de la manipulation des variables globales Python
[python] [meta] Le type de python est-il un type?
Principes de base pour exécuter NoxPlayer en Python
Pandas du débutant, par le débutant, pour le débutant [Python]
Projet Euler # 16 "Somme des pouvoirs" en Python
À la recherche du FizzBuzz le plus rapide en Python
Cours de base Python (à la fin de 15)
Définissez le nom du processus du programme Python
[Python] Récupère le code de caractère du fichier
L'histoire du traitement A du blackjack (python)
Apprenez intuitivement la refonte de Python np
Note Python: le rôle secret de Kamma
Projet Euler # 17 "Nombre de caractères" en Python