Più versioni di Python su OS X Leopard
-
10-07-2019 - |
Domanda
Al momento sul mio Mac sono installate più versioni di Python, quella fornita con essa, una versione scaricata di recente da python.org, una versione precedente utilizzata per eseguire Zope localmente e un'altra versione utilizzata da Appengine. È un po 'un casino. Qualche consiglio sull'uso di una versione di Python per governarle tutte? Come potrei fare per eliminare le versioni precedenti e collegare tutte le mie app a una singola installazione. Qualche gotcha specifico per Mac che dovrei conoscere? È un'idea stupida?
Soluzione
Non c'è nulla di intrinsecamente sbagliato nell'avere più versioni di Python. A volte è una necessità quando si utilizzano applicazioni con dipendenze di versione. Probabilmente il problema maggiore riguarda le dipendenze del pacchetto del sito che possono variare da un'app all'altra. Strumenti come virtualenv
possono essere d'aiuto. Una cosa che dovresti non cercare di rimuovere Python fornita da Apple in / Sistema / Libreria / Frameworks e collegata a da / usr / bin / python. (Nota la recente discussione di più versioni qui .)
Altri suggerimenti
Non l'ho provato con Zope, ma suppongo che quanto segue dovrebbe funzionare bene:
- Usando il tuo Zope's Python, crea un nuovo virtualenv, con o senza --no-site-pacchetti
- Rilascia Zope in virtualenv
- Attiva l'ambiente con $ VENV / bin / activ
- Installa eventuali pacchetti di siti necessari
- Esegui Zope usando Python ora su $ VENV / bin / python
Questo ha funzionato alla perfezione nella gestione di progetti Django con varie versioni di Python, Django e componenti aggiuntivi.
Questo articolo sembra andare più in dettaglio sulle specifiche di Grok e Virtualenv, ma le generalità dovrebbero applicarsi anche a Zope.
+1 per virtualenv.
Anche se non hai bisogno di versioni diverse di Python, è comunque utile mantenere separate le dipendenze di sviluppo dal tuo sistema Python.
Non sono sicuro del sistema operativo in uso, ma trovo queste istruzioni molto utili per far funzionare gli ambienti di sviluppo Python su OSX.
L'approccio che preferisco dovrebbe funzionare su ogni sistema operativo simile a UNIX:
Crea per ogni applicazione che necessita di una specifica versione di Python un account utente. Installa in ogni utente conta la corrispondente versione di Python con un prefisso locale dell'utente (come ~ / build / python) e aggiungi ~ / build / bin / alla variabile di ambiente PATH dell'utente. Installa / usa le tue applicazioni Python nel loro utente corretto.
Il vantaggio di questo approccio è il perfetto isolamento tra le singole installazioni di Python e la selezione relativamente conveniente dell'ambiente python corretto (solo su
per l'utente appropriato). Anche il sistema operativo rimane intatto.