2013-07-20 30 views
13

Mi piace usare Python con numpy, scipy e altri pacchetti. Sono un principiante assoluto di Python e ho alcuni problemi con l'installazione su Mac OS X.Installazione Python in ambiente virtuale Mac OS X che include un framework che posso includere in Xcode?

Sto seguendo questi due tutorial per installare python: 1 e 2.

Qui, HomeBrew viene utilizzato per installare Python (con pip) e virtualenv. Non ho un'opinione su cosa è meglio, MacPorts, HomeBrew, Fink ... Ho appena trovato questo tutorial che ispira fiducia.

Se ho capito bene, il sistema OS X Python, che non dovrei mai toccare, si trova in /System/Library/Frameworks/Python.Framework. E non posso usare questo in Xcode perché non ha i miei pacchetti desiderati. HomeBrew Python verrà installato da qualche parte in/usr/local /. Ho trovato un framework lì ma come framework di sistema non ha i pacchetti aggiuntivi. Il tutorial spiega che potrebbe essere meglio installare pacchetti aggiuntivi in ​​ambienti virtuali solo tramite pip. Ma non riesco a trovare un quadro lì.

Quindi la mia domanda è: come posso ottenere un'installazione Python in un ambiente virtuale che include un framework che posso includere in Xcode?

risposta

34
  1. L'Apple Python è funzionale e la normale cartella site-packages è /Library/Python/2.7/site-packages (e non /System/Library/Frameworks/Python.framework/Versions/2.7/ lib/python2.7/site-packages). Puoi usarlo senza problemi.
  2. Non ho mai avuto problemi a installare tutti i moduli (numpy, scipy, matplotlib, panda, shapely e altri ...) che volevo come framework, o con pip o easy_install, incluso virtualenv (semplicemente installarli nel convenzionale modo in Python) o la creazione di ambienti virtuali.
  3. quando si installa un modulo framework, viene inserito nella normale cartella dei pacchetti del sito.
  4. l'unico problema è forse la "vecchia" versione di Python (non è un problema per me, utilizzando 2.6.x, 2.7.x e le versioni 3.3.x)

Ma se si vuole, è possibile installare gli altri versioni di Python (in 64-bit, non 32!):

a) il modo prescritto da Apple: come un quadro

  • le versioni ufficiali di Python.org sono installati in /Library /Framework/Python.framework con la cartella site-packages in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  • stesso per la versione scientifica Enthought di Python (distribuzione scientifica con molti moduli preinstallati, NumPy, SciPy, matplotlib, ...),
  • (è anche possibile installare la versione di Homebrew Python come un quadro, vedi sotto)

È necessario modificare il percorso del Python eseguibile nella /usr/bin (di solito, questo viene fatto automaticamente dalla distribuzione tramite symlink o nello /Users/me/.bash_profile file).

I moduli installati in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages non interferiscano con quelli installati in /Library/Python/2.7/site-packages se si utilizza l'eseguibile Python appropriato e viceversa.

b) il modo in cui il sistema di gestione dei pacchetti

  • MacPorts installare la propria versione di Python nella cartella /opt/;

    sudo port -v installare python27

  • Fink installare la propria versione di Python nella cartella /sw/;

    Fink installare Python27

  • Homebrew installato Python in /usr/local/Cantina con collegamenti simbolici in /usr/local/bin.

    birra installare python
    o
    birra installare python --framework

  • Per utilizzarli, è necessario aggiungere /sw/bin,/sw/lib/o/opt/bin,/opt/lib/ al PATH e modificare il PERCORSO dell'eseguibile Python

  • Per me, il problema principale di Fink e MacPorts è che non tengono conto di ciò che è già installato e installano tutti nelle rispettive cartelle che possono creare problemi reali nella gestione dei percorsi di libreria.
  • La soluzione Homebrew è "pulito" (in /usr/local) e si basa su librerie esistenti se sono aggiornati, altrimenti si installa i propri versioni delle librerie

c) il modo "autonomo"

  • la soluzione perfetta è Anaconda (un'altra distribuzione scientifica con molti moduli preinstallati,),
    • Installa in modo pulito in una singola directory (in cui si desidera come /Users/ME/anaconda)
    • non richiede i privilegi di root
    • non influenzare gli altri Python installa sul vostro sistema o interferire con OS X Framework
    • passare a/da Anaconda impostando $ PATH o creando un alias in /Users/me /.bash_profile
      • alias anaconda = '/ Users/me/anaconda/bin/python'
      • alias anaconda3 = '/ Users/me/anaconda/ENV/py33/bin/python3'
    • è possibile installare le versioni di Python da 2.6.x alla 3.3.x
    • innovativo pacchetto e ambiente responsabile per Python, chiamato Conda, ma è possibile utilizzare pip o easy_install senza problemi
    • per me, ora, è la soluzione migliore ad ins ambienti virtuali ad alto fusto (come /Users/me/anaconda/ENV/py33)

d) il modo "duro"

  • è possibile compilare la propria versione di Python in una forma classica (risultati in/usr /) o come quadro. Ci vuole tempo ma non è difficile.

Quindi la tua domanda:

Come posso ottenere l'installazione di Python in un ambiente virtuale che include un framework che posso includere in Xcode?

Se non sei un esperto di Unix (gestione Percorsi), è necessario utilizzare la soluzione consigliata di Apple, una distribuzione quadri (tra cui l'Apple Python)

+0

Grazie per il vostro sforzo. Ho installato tutto correttamente tramite HomeBrew seguendo i passaggi forniti nei due collegamenti nella mia domanda. Usando [questi passaggi] (http://stackoverflow.com/questions/5276967/python-in-xcode-4) posso compilare script Python con tutti i pacchetti che ho installato nel mio ambiente virtuale. Nessun errore Ma considera che mi piace fare qualcosa come descritto [qui] (http://streylab.com/blog/2012/11/22/matplotlib-running-in-cocoa-under-xcode.html). Avrei bisogno di importare un framework su Xcode e non riesco a trovarne uno nel mio ambiente virtuale. Non ho capito dal tuo post se ce n'è? – DaPhil

+0

Non uso mai questa soluzione. Io uso Python dal terminale senza problemi. Per creare un ambiente virtuale io uso il comando Python virtualenv il tuo progetto – gene

+0

Ottima risposta. Bookmark questa pagina. –