J'ai un projet Python qui contient trois composants: des scripts exécutables principaux, des modules sur lesquels s'appuient ces scripts, et des données (bases de données sqlite3, fichiers plats, etc.) que ces scripts manipulent. Le niveau supérieur a un fichier __init__.py
de sorte que d'autres programmes peuvent également emprunter des modules si nécessaire. La question est, est-ce plus "Pythonic" ou "correct" de déplacer mon projet dans le répertoire site-packages par défaut, ou de modifier PYTHONPATH pour inclure un répertoire au-dessus de mon projet (pour que le projet puisse être importé)? D'une part, ce que j'ai décrit n'est pas strictement un "paquet", mais un "projet" avec des données qui peuvent être traitées comme un paquet. Donc je penche dans la direction de modifier PYTHONPATH (après tout, PYTHONPATH doit exister pour une raison, non?)Dois-je ajouter mon projet Python au répertoire site-packages ou ajouter mon projet à PYTHONPATH?
1
A
Répondre
1
Certainement pas ajouter votre projet aux paquets de site cela va gâcher l'installation de votre système Python et va renvoyer au moment où une autre application viendrait là ou vous auriez besoin d'installer quelque chose.
Il y a enfin deux options populaires pour l'installation d'applications de python de manière isolée
En utilisant virtualenv
Voir virtualenv projet. Il permet
- création de nouvel environnement python sectionneurs - python pour cet environnement est différent du système un et a sa propre configuration PYTHONPATH cela permet de garder tous les paquets installés privé pour elle.
- activation et désactivation de virtualenv donné à partir de la ligne de commande pour l'utilisation de la ligne de commande. Après
activate
, vous pouvez exécuterpip install
etc. et cela n'affectera que l'installation virtualenv donnée. - appeler un script Python en commençant par virtualenv Python copie - cela utilisera virtualenv lié (note, qu'il n'y a pas besoin d'appeler des
activate
)
utilisant zc.buildout
Ce paquet fournit la commande buildout
. Avec cela, vous pouvez utiliser un fichier de configuration spécial et cela permet de créer un environnement python local avec tous les paquets et scripts.
Conclusions
virtualenv
semble plus populaire aujourd'hui et je trouve beaucoup plus facile à apprendre et à utiliserzc.buildout
pourrait travailler aussi pour vous, mais soyez prêt pour un peu plus de temps à apprendre- installation dans les répertoires système Python doivent toujours être réservés pour des cas très particuliers (pip, easy_install), mieux l'éviter.
- installer dans des répertoires privés et manipulatig PYTHONPATH est également une option, mais vous répéter, ce
virtualenv
fournit déjà
Questions connexes
- 1. Comment ajouter coreplot-cocoaTouch.xcodeproj à mon projet?
- 2. Ajouter des bibliothèques externes à mon projet
- 3. Comment ajouter curlpp à mon projet?
- 4. Bibliothèques Javasign à ajouter à mon projet
- 5. Ajouter dynamiquement référence à mon projet
- 6. Comment ajouter Jinja2 à mon projet cherrypy?
- 7. Ajouter un Angular2 Modal à mon projet
- 8. comment ajouter mysql db à mon projet?
- 9. Comment ajouter VisualStateManager à mon projet Surface?
- 10. Comment ajouter GData.framework dans mon projet iPhone?
- 11. Comment ajouter iText dans mon projet netBeans?
- 12. bibliothèque Ajouter au projet Cmake
- 13. répertoire correct pour API Tweepy pour ajouter au PythonPath
- 14. Puis-je ajouter un compilateur linq à mon projet?
- 15. Ajouter ViewPagerIndicator au projet
- 16. Ajouter un projet externe à mon application iphone dans xcode
- 17. Comment ajouter du service Web à mon projet?
- 18. Comment ajouter SQLite (SQLite.NET) à mon projet C#
- 19. Comment ajouter mon projet à Team Foundation Server?
- 20. Django démarrer le projet PYTHONPATH
- 21. ajouter qt et qt mobilité à mon projet
- 22. Ajouter la référence DLL (lame_enc.dll) à mon projet
- 23. Ajouter Firebase GCM au projet
- 24. Ajouter un module Python à un projet Google App Engine
- 25. Ajouter MGSplitViewController au projet simple
- 26. comment ajouter le fichier xxx.db dans mon projet dans android
- 27. Ajouter un en-tête d'un projet différent à mon projet en utilisant automake
- 28. ajouter ShareKit à mon projet, ne compilera pas - 4,448 erreurs
- 29. Comment ajouter un fichier xml à mon projet?
- 30. Comment ajouter les bibliothèques JJIL à mon projet Android Eclipse?
PYTHONPATH, mains vers le bas. –