Donc, encore une fois, je fais un joli programme python qui rend ma vie toujours plus facile et fait gagner beaucoup de temps. Bien sûr, cela implique un virtualenv, fait avec la fonction mkvirtualenv
de virtualenvwrapper. Le projet a un fichier requirements.txt avec quelques bibliothèques requises (requêtes aussi: D) et le programme ne fonctionnera pas sans ces bibliothèques.Fonctions virtualenvwrapper indisponibles dans les scripts shell
J'essaie d'ajouter un script shell exécutable bin/run-app
qui serait dans mon chemin (lien symbolique en fait). Maintenant, dans ce script, je dois passer à virtualenv avant de pouvoir exécuter ce programme. Donc, je mets cela dans
#!/bin/bash
# cd into the project directory
workon "$(cat .venv)"
python main.py
Un fichier .venv
contient le nom de virtualenv. Mais quand je lance ce script, j'obtiens l'erreur workon: command not found
.
Bien sûr, j'ai le virtualenvwrapper.sh provenant de mon bashrc mais il ne semble pas être disponible dans ce script shell. Alors, comment puis-je accéder à ces fonctions virtualenvwrapper ici? Ou est-ce que je fais cela dans le mauvais sens? Comment lancez-vous vos outils python, dont chacun a son propre virtualenv !?
Ceci nécessite un codage en dur de l'emplacement du script virtualenvwrapper.sh, qui dépend du système d'exploitation, parmi beaucoup d'autres choses. –
@ShrikantSharat bien, comme cela est censé être juste un moyen plus facile pour vous d'exécuter des scripts dans un virtualenv (donc seulement sur votre système), il ne devrait pas vraiment être un problème, n'est-ce pas? Si vous vouliez distribuer votre code, je doute que vous demandiez aux utilisateurs d'installer virtualenv et d'en créer un, vous lui donneriez simplement une liste de dépendances à installer. – MatToufoutu
Les * utilisateurs * seraient mes amis techy qui voudraient aussi un virtualenv pour les dépendances de ce programme. Je n'ai pas à leur demander de;) –