web-dev-qa-db-fra.com

Python zip intégrable

Avec la version 3.5.0, Python.org a introduit une distribution facturée comme fichier Zip intégrable .

Malheureusement, le fichier compressé est livré sans fichier d'aide (pas même un fichier Lisez-moi). Le page de téléchargement sur Python.org le répertorie simplement parmi les téléchargements.

Apparemment, il s'agit d'une distribution portable Python. Elle est de toute façon assez différente dans sa structure et sa taille de la distribution standard utilisant l'installateur.

J'ai réalisé qu'il est possible d'installer pip avec get-pip.py et, grâce à pip, c'est un jeu d'enfant d'ajouter de nombreux autres packages d'application, bien que je ne puisse toujours pas ajouter Tkinter (ajuster les barres obliques) selon votre Shell):

curl https://www.python.org/ftp/python/3.x.x/python-3.x.x-embed-AMD64.Zip > epython.Zip
unzip -o epython.Zip -d env1
curl -L https://bootstrap.pypa.io/get-pip.py>env1/get-pip.py
env1/python env1/get-pip.py

Ajoutez ce dont vous avez besoin, par exemple Django :

env1/python -m pip install Django  

Compte tenu de la taille (6,5 méga pour le 3.5.1-x64), je pense que cela peut être pratique comme moyen de créer des environnements isolés.

En fait, le général Python documentation dit que

la distribution intégrée est (presque) entièrement isolée du système de l'utilisateur, y compris les variables d'environnement, les paramètres de registre du système et le package installé

Compte tenu de cela, dans Windows, il existe maintenant deux environnements isolés Python, le second étant le standard Virtualenv . Le même processus dans Virtualenv est le suivant:

virtualenv env2

et pour Django ce serait:

env2/Scripts/python -m pip install Django  

Comparaison du contenu de env1 et env2, ils semblent avoir les mêmes fichiers. La seule différence significative est Tkinter1 , ce qui n'est de toute façon pas très significatif pour les applications de bureau.

Quelle est la différence entre Python Virtualenv et Python intégrable?

Plus précisément, quelle est la différence entre l'application Web isolée créée avec le Zip intégrable (env1) et Virtualenv (env2)?

28
antonio

Comme vous pouvez le voir dans la documentation , il est principalement destiné à exécuter Python applications basées sur ms-windows et à incorporer Python dans une application. Comme vous pouvez le voir, ils ont omis tkinter. Peut-être pour réduire la taille?

Le comparer à un virutualenv n'a pas beaucoup de sens, je pense. Ils ont des cas d'utilisation complètement différents.

Dans le monde ms-windows, les applications sont généralement distribuées comme des entités indépendantes monolithiques. En revanche, fondamentalement, chaque version UNIX possède un système de gestion des packages qui facilite la création de packages qui dépendent des autres. Donc, si vous installez une application basée sur python sous UNIX, le système de gestion des packages installera essentiellement Python pour vous s'il n'est pas encore installé. Sur ms-windows cela ne fonctionne pas. Plusieurs Python pour ms-windows ont vu le jour car (pour des raisons techniques) la compilation et la configuration de trucs sur ms-windows est pénible [1][2][3] par rapport à UNIX. Donc, avoir un embeddable Python = devrait avoir du sens pour les personnes qui souhaitent distribuer des programmes basés sur Python ou qui souhaitent intégrer Python dans leur application.

En général, je recommande aux utilisateurs de ms-windows d'installer Canopy ou Anaconda car ils sont livrés avec la plupart des modules externes dont vous aurez probablement besoin.

8
Roland Smith