2012-02-09 16 views
6

Voglio creare un programma di installazione del pacchetto nativo per Mac OS X, la creazione del pacchetto non è proprio il problema, il vero affare sono le dipendenze che devono installato; Devo installare Python, NumPy e Matplotlib (solo se le versioni richieste non sono già installate).Creazione del programma di installazione del pacchetto in OS X - Installa Python, NumPy e altre dipendenze

Ho sentito cose davvero brutte sull'app Package Maker, ho letto un po 'e ho già trovato un bel tutorial anche se è piuttosto outdated. Come riferimento, ecco il riferimento Apple guide.

Immagino che dovrei usare la fonte non compilata fornita da ciascuno di questi tre progetti.

Mi piacerebbe davvero vedere il file PackageMaker utilizzato per creare il programma di installazione Python ufficiale, se tale file è disponibile da qualche parte, per favore indicatelo.

Comunque:

Quale sarebbe il modo migliore per farlo? Sta usando uno sciocco PackageMaker per questo scopo? Qualche altra letteratura che mi aiuterebbe?

Extra:

Quale sarebbe il modo più semplice per testare le mie installatori?

+0

OS X ha già python, quindi dai un'occhiata a 'virtualenv' +' pip install' combo con uno 'shell script'. –

+1

Il Python fornito con Mac OS X non funzionerà con Matplotlib, devi eseguire una nuova installazione da Python.org.Ad ogni modo, controllerò queste due opzioni. –

+0

L'ho detto, perché, se hai già un python di default, puoi facilmente scrivere 'install.sh' per installare virtualenv, pip e così via. Oh aspetta. Puoi farlo anche senza python predefinito. –

risposta

3

Suppongo che desideri installare i pacchetti che hai menzionato perché stai sviluppando un'applicazione Python. Hai guardato allo PyInstaller? "Converte (pacchetti) i programmi Python in eseguibili stand-alone, sotto Windows, Linux, Mac OS X, Solaris e AIX", quindi non devi preoccuparti di cosa è installato sul sistema di destinazione.

E se si utilizza PyInstaller, il "extra" sarebbe facile. Basta copiare l'eseguibile risultante su qualsiasi altra macchina e testarlo eseguendolo.

+0

Anche se questa è una soluzione (non sono sicuro al 100%), per lo sviluppo di il nostro personale deve installare tutto e di solito sprecano un sacco di tempo a installare tutto, ecco perché ho bisogno di creare un programma di installazione e se c'è qualche codice da modificare o rimuovere, possono farlo. Questa è una soluzione per la distribuzione, non per lo sviluppo. Grazie per il suggerimento Michael. –

2

Qualcosa di simile /tmp/install.sh:

cd ~ 
curl -C - -O http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.7.tar.gz 

tar -xzf virtualenv-1.7.tar.gz 
cd ./virtualenv-1.7 
python setup.py install 

cd ~ 
rm virtualenv-1.7.tar.gz 
rm -rd ./virtualenv-1.7 

virtualenv myenvfolder 
source myenvfolder/bin/activate 
easy_install pip 

pip install NumPy 
pip install Matplotlib 

E poi:

chmod +x /tmp/install.sh; 
/tmp/install.sh 
+0

Stai suggerendo di aggiungere questo script al progetto Package Installer? Altrimenti, voglio evitare qualsiasi interazione con il terminale per l'installazione. Ecco perché voglio usare l'Installatore di pacchetti. Grazie! –

1

forse è possibile utilizzare macports binary-packages o binary-archives? e forse fabric or puppet. Puppet on OSX.

Macport è semplice come apt-get da utilizzare e si prende cura di tutte le dipendenze. Di default macports si installa su/opt/local in modo tale che le installazioni non interferiscano con le installazioni di apple. L'impostazione predefinita è compilare dalla fonte. Alcuni pacchetti sono grandi e hanno molte dipendenze, quindi la compilazione richiede molto tempo e tutte le risorse sulla macchina. Se si crea un archivio binario, è necessario compilare solo una macchina arcithecture/versione osx. Quindi è sufficiente installare Macports e impostare una condivisione con gli archivi binari. Con tessuto o fantoccio puoi automatizzare build e distribuzione.

Quindi se nel prossimo futuro scoprirai che hai bisogno di pytable o numexpr è semplice come: sudo port install py26-tables e se altre persone ne hanno bisogno, puoi fare un archivio binario di esso e metterlo sulla condivisione.

+0

Perché queste soluzioni migliori rispetto al programma di installazione dei pacchetti di Mac? Sono aperto a nuove soluzioni. –