Cela fait un certain temps que cette question a été soulevée. J'ai fait face à un problème similaire. Les étapes suivantes expliquent comment le faire assez rapidement.
Puisque pydiction.py n'analyse pas les paquets récursivement, j'ai dû utiliser find et vi pour construire une liste de paquets pour Django. Supposons que vous avez installé django dans /usr/local/lib/python2.6/dist-packages/django.
faire ensuite les éléments suivants:
cd /usr/local/lib/python2.6/dist-packages
find django -type d > /var/tmp/django_pkgs.sh
django_pkgs.sh Open in vim et supprimer toutes les lignes contenant les médias, statique, modèles, gis, luminaires, essais, locale, etc. localflavor vim, C'est facile. Effectuez les opérations suivantes de la console elle-même vim:
:g/media/d
:g/static/d
:g/templates/d
....
....
....
Une fois que tous les fichiers indésirables sont supprimés de notre liste, remplacer tous/avec. Procédez comme suit depuis la console vim:
:%s!/!.!g
Ceci convertira le chemin du fichier en noms de module Python complet. Remplacez ensuite toutes les nouvelles lignes par des espaces blancs.Effectuez les opérations suivantes à partir de la console vim:
%s/\n//
Notez qu'il existe un seul caractère d'espace blanc entre les deux dernières barres obliques. Vous avez maintenant tous les noms de modules sur une seule ligne. Maintenant, ajoutez #!/Bin/bash dans la première ligne du fichier. De cette façon, nous convertissons notre fichier en un script bash. Maintenant, ajoutez ce qui suit sur deuxième et troisième lignes (comme cela est expliqué par Oivvio dans l'un des postes précédents):
export DJANGO_SETTINGS_MODULE=settings
export PYTHONPATH=/path/to/parent/of/settings
S'il vous plaît remplacer chemin mentionné dans la dernière ligne avec le répertoire dans lequel votre settings.py django est maintenue.
Puis au début de la ligne la liste des modules django, ajoutez ce qui suit
python ./pydiction.py
Cette ligne devrait maintenant ressembler à
python ./pydiction.py django django.contrib django.contrib.redirects ......
quitter maintenant vim et exécuter
chmod +x /var/tmp/django_pkgs.sh.
Ensuite, passez au répertoire où complete-dict et pydiction.py sont conservés et exécutez /var/tmp/django_pkgs.sh
. Vous avez besoin d'un accès en écriture au fichier complete-dict. Si le fichier de votre liste de packages est correct, tout fonctionnera correctement. Sinon, vous verrez diverses erreurs sur la console causées par l'importation de modules django non existants. Pour les corriger, identifiez ces entrées dans votre fichier django_pkgs.sh
et supprimez-les manuellement. Ensuite, exécutez le même script.
J'aurais préféré pydiction.py
faire une recherche récursive de modules plutôt que chacun préparant la liste de modules manuellement. Probablement un argument de ligne de commande comme -r aurait pu être ajouté à pydiction pour le faire automatiquement. :(
regardez une publication pls =) – holms