Bonjour,
Si je développe un truc en Python, je peux faire les choses proprement en me faisant un environnement virtuel (j'aime bcp venv
). Ensuite avec un pip freeze
j'ai ma liste des packages.
Bon, mais si quelqu'un désire utiliser mon travail, il va devoir se recréer un environnement virtuel, y faire son pip install
, le sourcer puis ensuite exécuter mon code.
Est-ce qu'il existerait un truc plus immédiat, à la appimage
, où tu peux tout empaqueter prêt à l'emploi ?
Merci !
# beaucoup d'options...
Posté par aurel (site web personnel, Mastodon) . Évalué à 9 (+7/-0).
… mais aucune vraiment à la fois ultra simple et ultra fonctionnelle. Suivant ton besoin (liste non exhaustive):
Voire carrément nuitka ou autre.
# Container
Posté par alberic89 🐧 . Évalué à 0 (+2/-3).
Peut-être un conteneur docker/podman ?
C'est peut-être un peu lourd, mais ça doit marcher.
L'informatique n'est pas une science exacte, on n'est jamais à l'abri d'un succès
[^] # Re: Container
Posté par totof2000 . Évalué à 10 (+9/-0).
Ya que moi que ça agace cette façon de mettre du conteneur partout ? C'est un peu comme il y a des années avec le XML …
[^] # Re: Container
Posté par Aldebaran (site web personnel) . Évalué à 1 (+1/-1). Dernière modification le 13 décembre 2024 à 09:21.
Bah là pour le coup, c'est assez adapté je trouve, tu livres un environnement de dev, isolé, qui fonctionne sans impacter l'éventuelle configuration et les logiciels de l’hôte. C'est plus propre que d'installer ça directement sur la machine à mon avis.
[^] # Re: Container
Posté par Elfir3 . Évalué à 6 (+4/-0).
Ça dépend du type d'application je dirais. Si c'est un serveur web, oui. Ce n'est pas habituel pour une application desktop d'être livré dans une image OCI par contre.
[^] # Re: Container
Posté par Voltairine . Évalué à 6 (+6/-1).
Il y a des gens tu leur donnes un marteau, …
Heureusement maintenant on a YAML ;-)
[^] # Re: Container
Posté par gUI (Mastodon) . Évalué à 10 (+7/-0).
"Le XML c'est comme la violence : si ça ne résout pas tous tes problèmes, c'est que tu ne l'as pas assez utilisé."
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Container
Posté par fearan . Évalué à 3 (+0/-0).
Oui avec toutes ces belle technos on pourrait résumer a un vieux dicton, d'un grand philosophe :
Si vous avez un marteau, tout ressemble à un clou.
Il ne faut pas décorner les boeufs avant d'avoir semé le vent
# Ceci n'est pas une réponse mais une question (parce que je suis curieux)
Posté par TheBreton . Évalué à 4 (+3/-0).
Bonjour, quand je veux utiliser le travail de quelqu'un d'autre en python je m'attend à trouver un package ( https://packaging.python.org/en/latest/guides/distributing-packages-using-setuptools/ ).
Si il n'est pas disponible via pipy, je cherche à télécharger un package et à faire ensuite pour l'installer "python setup.py install".
Ces procédures on le bon gout de ma laisser choisir entre une installation dans un pyenv ou en global, de gerer l'installation des modules dépendant, de compiler les fichiers c au besoin, etc.
Que souhaite tu trouver comme fonctionnalité supplémentaire dans la méthodes que tu cherche ?
[^] # Re: Ceci n'est pas une réponse mais une question (parce que je suis curieux)
Posté par gUI (Mastodon) . Évalué à 8 (+5/-0).
Le tout dans ton environnement virtuel local pour pas pourrir ton installation bien évidemment, ni t'empêtrer dans les dépendances. C'est de là que je pars, ça n'est pas assez immédiat et ça demande une certaine connaissance de l'écosystème Python.
Un truc qui n'est pas fait pour les dev, mais pour les utilisateurs. Les dev ont le bon goût de se faire des trucs pratiques entre eux, mais ensuite, quelle plaie pour le reste de la population !
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Ceci n'est pas une réponse mais une question (parce que je suis curieux)
Posté par cin . Évalué à 7 (+6/-0).
Un truc que j'ai tendance à faire, c'est de m'assurer que mon package fonctionne avec une install pipx (https://pipx.pypa.io/stable/).
Du coup, le/la collègue a juste à faire un
pipx install <monpackage>
, et c'est marre.[^] # Re: Ceci n'est pas une réponse mais une question (parce que je suis curieux)
Posté par gUI (Mastodon) . Évalué à 6 (+3/-0).
Je vais y jeter un œil.
Le coup de proposer l'isolation, les dépendances en même temps que le package lui-même ça ressemble à ce que je cherche oui.
merci !
En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.
[^] # Re: Ceci n'est pas une réponse mais une question (parce que je suis curieux)
Posté par Gil Cot ✔ (site web personnel, Mastodon) . Évalué à 4 (+2/-0).
Je m’étais noté de le tester pendant des lustres, puis une dépêche sur le sujet m’a fait plonger plus rapidement et sans regret finalement.
“It is seldom that liberty of any kind is lost all at once.” ― David Hume
[^] # Re: Ceci n'est pas une réponse mais une question (parce que je suis curieux)
Posté par Graveen . Évalué à 4 (+2/-0).
Je me languis du 3/4, d'ailleurs :)
# Choisir un autre langage ?
Posté par max22 . Évalué à 4 (+4/-1).
Dans mon cas si je voulais que quelqu'un utilise un programme que j'ai codé, j'aurais plutôt tendance à choisir autre chose que Python.
Un autre langage qui allie la simplicité et un écosystème assez riche : Go.
Par exemple en Go, ta question ne se pose même pas, les virtualenv ça n'existe pas : tu fais juste "go build", et tu te retrouves avec un seul fichier exécutable! et sans aucune dépendance. N'importe qui pourra l'utiliser, même quelqu'un qui ne sait pas installer docker ni python.
besoin d'un exécutable windows ?
GOOS=windows GOARCH=x86_64 go build
Le mettre sur le web:
GOOS=js GOARCH=wasm go build
Et ça même python ne peut pas faire !
faire une application graphique compatible android/ios/linux/freebsd/mac/windows : fyne.io (python ne peut pas faire non plus)
Et la meilleure cheat sheet que j'aie jamais vue de ma vie : https://golang.sk/images/blog/cheatsheets/go-cheat-sheet.pdf.
Je ne suis pas venu pour taper sur python car je l'utilise plus souvent que go, mais c'est juste quand je vois "docker" pour envoyer son travail à quelqu'un, je me dis que quelque chose a merdé. j'aime bien les trucs simples, rapides, légers. pas les montagnes de complexité qui ne permettent même pas d'envoyer mon programme à ma mère ou à un pote.
# Utiliser = exécuter ou intégrer ?
Posté par steph1978 . Évalué à 4 (+2/-0). Dernière modification le 17 décembre 2024 à 13:08.
Si c'est pour exécuter, il est tout à fait possible (contrairement aux
FUD"inexactitudes" régulièrement diffusées par lesfanboysutilisateurs d'autres langages) de construire un exécutable python.Pour ma part, j'utilise PyInstaller. Avec un exemple ici qui construit un exécutable autonome pour visidata.
Si c'est pour intégrer dans un autre projet alors il faut packager pour pypi.org, de manière à ce que les utilisateurs puissent faire un
pip install ma_belle_bibliotheque_logicielle
. Avec un exemple ici qui est une ligne de commande pour lufi. En particulier regarder le contenu des fichier "setup.py" et "publish.sh".[^] # Re: Utiliser = exécuter ou intégrer ?
Posté par steph1978 . Évalué à 4 (+2/-0).
Et pour se construire un environnement de dev par projet, je conseille asdf, quelque soit le langage. À combiner avec un virtualenv en ce qui concerne python.
# Commentaire supprimé
Posté par Claude20 . Évalué à -1 (+0/-2). Dernière modification le 17 décembre 2024 à 15:21.
Ce commentaire a été supprimé par l’équipe de modération.
# Commentaire supprimé
Posté par Catherine25 . Évalué à 0 (+0/-1). Dernière modification le 21 décembre 2024 à 09:57.
Ce commentaire a été supprimé par l’équipe de modération.
# PEP-723 et uv
Posté par Cyrille Pontvieux (site web personnel, Mastodon) . Évalué à 2 (+0/-0).
Attention à
pip freeze
, ça ne fonctionne que pour l’interpréteur (la version de python) et la plateforme où tu te trouves. Ce n’est pas universel.Le plus simple pour des outils admin/ligne de commande, c’est d’utiliser la capacité d’
uv
d’être compatible avec PEP-723 (qui permet de décrire les dépendances dans le fichier directement)Exemple pour liste les 10 premières PEP avec un script python qui requiert des dépendances mais qui pour une raison ou une autre a besoin d’un python ≥3.11 (ce que sait installer
uv
)foo.py
Ta seule dépendance c’est d’avoir
uv
installé sur ta machine (binaire sans dépendance).P.S. Le script et les dépendances sont débiles, mais ça permet de donner un exemple.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.