web-dev-qa-db-fra.com

Comment déployer un script python?

Cela peut sembler une question très ouverte, mais je suis un passionné de python et je suis assez nouveau dans ce monde de développement ... J'ai développé un script en python qui prend une entrée et donne une sortie basée sur l'algorithme que j'ai mis en place dans le script. Je souhaite utiliser ce script et le conditionner de manière à ce qu'il puisse être utilisé par les utilisateurs finaux n'ayant aucun esprit technique et ne se préoccupant que des entrées qu'ils fournissent et des résultats qu'ils obtiennent. 

J'ai utilisé Jupyter Notebook pour développer ce code complexe et je souhaite savoir comment mettre en package ou déployer ce code afin que l'utilisateur final puisse l'utiliser sans voir comment cela fonctionne car il pourrait être pénible pour lui. 

Quelqu'un peut-il m'aider avec l'idée de la façon de le faire? Quelque chose qui est Opensource serait préféré. 

Merci

4
Kshitij Yadav

PyInstaller est un puissant outil opensource pour le déploiement/la distribution multiplate-forme du projet python.

* Remarque: Bien que je n’ai aucune expérience de la distribution de Jupyter Notebook avec PyInstaller, cela semble plausible avec ce guide .

Installer via Pypi:

pip install pyinstaller

La distribution de code sans console peut être aussi simple que:

pyinstaller --noconsole script.py

Ensuite, vous pouvez trouver votre fichier .exe (Fenêtre) dans le dossier dist de votre répertoire de travail.

2
imjp94

Vous souhaitez "déployer" votre code Python auprès des utilisateurs de manière conviviale. Je suppose que cela signifie une interface graphique. 

Une façon de faire est de faire en sorte que votre programme Python présente une interface graphique lorsqu’il s’exécute. Si Python est installé sur leur système et que des fichiers .py y sont associés, vos utilisateurs pourront alors double-cliquer sur votre fichier .py, qui s'exécutera de manière à ressembler à un clic sur un fichier .exe.

Vos besoins en interface graphique semblent minimes. Un nouveau package, PySimpleGUI , a été publié récemment et fournit ce que vous recherchez. Consultez cet article pour voir si cela correspond à ce que vous recherchez . https://opensource.com/article/18/8/pysimplegui

L'un des contributeurs du paquet PySimpleGUI a découvert qu'un seul fichier .EXE pouvait être créé de sorte qu'il apparaisse que le programme Python ressemble à d'autres programmes Windows, car il se lance directement dans une interface graphique. 

Pour ce faire, utilisez le package PyInstaller, comme indiqué dans une autre réponse.

pyinstaller -wF your_PySimpleGUI_based_program.py

2
MikeyB

En supposant que vous n’ayez pas d’interface graphique, j’utiliserais un fichier batch (.bat) pour appeler le script avec les entrées fournies.

your_script.bat:

set VAR_1=this
set VAR_2=that

python your_script.py %VAR_1% %VAR_2%

Récupérez ensuite ces arguments dans le script python via 

sys.argv[0]  sys.argv[1]

Pour les utilisateurs finaux, il ne s'agit que d'un double clic!

J'espère que tu as l'idéia

1
Hugo Assis

Utilisez sparrow pour livrer votre script aux utilisateurs finaux. Il fonctionne bien avec les scripts Python aussi.

En gros, vous déclarez simplement votre fichier requis en tant que fichier requirements.txt et nommez votre script en tant que story.py. Vous pouvez gérer les paramètres d'entrée à l'intérieur du script de la manière suivante:

  from outthentic import *

    foo = config()['main']['foo']
    bar = config()['main']['bar']

Ensuite, vous téléchargez votre script sur SparrowHub:

$ nano sparrow.json
{
    "name": "my-script",
    "version": "0.1.0",
    "description" : "this is my script",
}

$ ls -1
story.py
requirements.txt
sparrow.json

$ sparrow plg upload

Enfin, les utilisateurs finaux utilisent votre script comme:

$ sparrow plg install my-script
$ sparrow plg run my-script --param main.foo=1 --param main.bar=2

PS. divulgation Je suis l'auteur de l'outil. Faites-moi savoir si vous avez besoin d'aide pour conditionner votre script.

0
Alexey Melezhik