2
votes

Comment empaqueter un seul script python qui prend des arguments de ligne de commande et a également des dépendances?

J'ai un seul fichier Python qui est censé recevoir un tas d'entrées pendant la commande.

Par exemple: python script.py "string_1" "string_2"

J'ai aussi un tas de dépendances, y compris des pandas, datetime et même Python3.

Je veux empaqueter tout ce code de manière à ce que n'importe qui puisse installer le paquet avec les dépendances aussi (dans un répertoire ou plus) et ensuite appeler simplement le script / module: de la manière ci-dessus. Sans avoir à entrer dans un interpréteur Python.

J'ai essayé d'utiliser la ressource python-packaging , mais avec cela je devrais entrer dans l'interprète, non?


2 commentaires

Pensez à utiliser un outil tel que py2exe (pour les déploiements Windows). L'installation automatique des packages Python n'est pas un problème trivial.


Copie possible de Comment faire un exécutable autonome de script Python à exécuter sans AUCUNE dépendance?


3 Réponses :


1
votes

J'ai trouvé un bon article aujourd'hui qui explique assez bien la procédure: https://medium.com/dreamcatcher-its-blog/making-an-stand-alone-executable-from-a-python-script-using- pyinstaller-d1df9170e263

pyinstaller --onefile est le tl; dr sous Linux. Sous Windows, vous avez également besoin de py32exe


0 commentaires

0
votes

Jetez un œil à pex ( https://pex.readthedocs.io/en/stable/ ). Il regroupe vos scripts, fichiers, dépendances, etc. Python dans un seul exécutable. Vous avez toujours besoin de l'interpréteur python installé, mais il inclut tout le reste.


0 commentaires

1
votes

Si vous pouvez compter sur une installation de base de python déjà présente.

Ensuite, il vaut la peine de regarder le module zipapp de Python introduit dans Python3.5 https://docs.python.org/3/library/zipapp.html#creating-standalone-applications-with-zipapp Pour des informations générales PEP441 https://www.python.org/dev/peps/pep-0441/

Il existe également un projet appelé Shiv qui ajoute des capacités supplémentaires au module zipapp intégré dans python3.5

https://shiv.readthedocs.io/en/latest/


0 commentaires