7
votes

Création d'installateur de package dans OS X - Installez Python, Numpy et d'autres dépendances

Je souhaite créer un programme d'installation de package Mac OS X natif, la création de l'emballage n'est pas vraiment le problème, la vraie affaire est les dépendances qui doivent être installées; J'ai besoin d'installer Python, Numpy et Matplotlib (uniquement si les versions requises ne sont pas déjà installées).

J'ai entendu des choses vraiment mauvaises sur l'application Forfait Maker, je lisais un peu et j'ai déjà trouvé un bon tutoriel bien que ce soit tout à fait OUtdated . En tant que référence, voici la référence d'Apple guide .

J'imagine que je devrais utiliser la source non pondérée fournie de chacun de ces trois projets.

Cela m'aiderait vraiment à voir le fichier PackAgemaker utilisé pour créer l'installateur officiel Python, si tel fichier est disponible quelque part, veuillez le signaler.

Quoi qu'il en soit:

Quel serait la meilleure façon de faire cela? Utilise un packAgemaker idiot à cette fin? Toute autre littérature qui m'aiderait?

Extra:

Quel serait le moyen le plus simple de tester mes installateurs?


10 commentaires

OS X a déjà python, alors consultez virtualenv + PIP Installation Combo enveloppé avec un script shell .


Le python qui est livré avec Mac OS X ne fonctionnera pas avec Matplotlib, vous devez faire une nouvelle installation de Python.org. Quoi qu'il en soit, je vérifierai ces deux options.


J'ai mentionné que, parce que, si vous avez déjà un python par défaut, vous pouvez facilement écrire installer.sh pour installer virtualenv, pip et ainsi de suite. Oh, attendez. Vous pouvez le faire même sans python par défaut.


Il est possible, mais pas facile, d'installer numpy, scipe et matplotlib pour le python par défaut dans Lion. Je l'ai fait ce week-end, mais je pense que vous êtes sage de les emballer tous ensemble.


Ouais, je déteste quand je vois un utilisateur tout confondu et ne pas pouvoir installer le logiciel. Spécialement pour les utilisateurs ou les personnes qui n'ont pas de fond sur UNIX :(


"Le python qui navire avec Mac OS X ne fonctionnera pas avec Matplotlib, vous devez faire une nouvelle installation de Python.org." <- Ce n'est probablement pas vrai.


Désolé, j'ai oublié d'ajouter que cela est vrai pour le programme d'installation MATPLOTLIB.PKG. S104.Photobucket.com/albums/m184 / Yosmark / ... (voir les premières lignes) ... J'ai supposé que être la suggestion, j'ai installé Python de Python.org puis installée Matplotlib.


Avez-vous déjà consulté le Packages Application, qui semble éventuellement faire ce que tu veux? Comment avez-vous résolu cela à la fin?


Je n'ai jamais regardé les paquets, nous avons fini par devoir passer pour utiliser PIP.


Je sais que c'est un vieux q, je commente juste pour quiconque trébuche ici. En lisant votre commentaire sur la réponse de @Michael, je pense que vous le souhaitez pour assouplir les dépendances du processus de développement; Vous avez probablement besoin de docker.


4 Réponses :


4
votes

Je suppose que vous souhaitez installer les packages que vous avez mentionnés parce que vous développez une application Python. Avez-vous regardé pyinstaller ? Il "convertit (packages) programmes Python en exécutables autonomes, sous Windows, Linux, Mac OS X, Solaris et Aix", vous n'avez donc pas à vous soucier de ce qui est installé sur le système cible.

Et si vous utilisez Pyinstaller, le "Extra" serait facile. Copiez simplement l'exécutable résultant sur une autre machine et testez-la en l'exécutant.


2 commentaires

Bien que ce soit une solution (je ne suis pas sûr à 100%), de développer beaucoup de nos gens doivent tout installer, et ils perdent généralement beaucoup de temps à tout installer, c'est pourquoi j'ai besoin de créer un installateur et s'il est là est un certain code pour éditer ou supprimer qu'ils le peuvent. C'est une solution pour la distribution et non pour le développement. Merci pour la suggestion Michael.


Y a-t-il un package Python pour créer General PKG Installateurs pour MacOS?



2
votes

quelque chose comme /tmp/install.sh : xxx

puis: xxx


2 commentaires

Vous suggérez-vous d'ajouter ce script au projet d'installateur de package? D'autre, je veux éviter toute interaction avec le terminal pour l'installation. C'est pourquoi je veux utiliser le programme d'installation de paquets. Merci!


Note latérale: Les packages de dépendance généralement (PIP installable) sont répertoriés dans un fichier requis.txt comme fichier similaire et ajouté à la version Contrôle de la version (git), et tout script d'installation doit avoir pip install -r /requirement.txt .



1
votes

Peut-être que vous pouvez utiliser MacPorts Packages binaires ou Archives binaires ? Et peut-être Tissu ou marionnette . marionnette sur OSX .

Macports est aussi simple que APT-HAND à UTILISER et prend soin de toutes les dépendances. Par défaut, MacPorts Installe sur / opt / local afin que les installations n'interfèrent pas avec les installations Apple. La valeur par défaut est de compiler à partir de la source. Certains forfaits sont grands et ont beaucoup de dépendances afin que la compilation prend beaucoup de temps et tout le recours sur la machine. Si vous faites une archive binaire, il vous suffit de compiler des machines PR Arcithectricture / OSX-Version. Ensuite, il vous suffit d'installer Macports et de vous installer avec des archives binaires. Avec tissu ou marionnette, vous pouvez automatiser les constructions et la distribution.

Alors, si vous êtes dans un proche avenir, vous trouverez que vous avez besoin de pytable ou de numexpr, il est aussi simple que: port sudo installer py26-tables Et si d'autres personnes ont besoin de cela pour vous pouvez faire une archive binaire et la mettre sur la part.


1 commentaires

Pourquoi ces meilleures solutions sont-elles meilleures que l'installateur de package de Mac? Je suis ouvert à de nouvelles solutions.



-1
votes

Pour installer la dernière version de Python, vous pouvez utiliser ici , et vous pouvez installer numpy et matplotlib directement dans votre terminal. Avec ces commandes: xxx


1 commentaires

Cela ne répond pas à la question, ce n'est pas ce qu'ils demandent.