Utilizzo di pip rispetto a MacPorts per l'installazione dei pacchetti Python

8

Potrei installare un pacchetto python ( per esempio , numpy ) sul mio Mac tramite Macports:

port install py-numpy

o tramite pip :

pip install numpy

Quali sono i pro / contro generali di ciascun approccio? Quando dovrebbe essere usato ciascun approccio?

  • Quando dovrei preferire uno rispetto all'altro?
  • È importante che il pacchetto che sto installando sia piccolo o grande (ad esempio numpy )?
  • Dipende dalla versione di python che sto usando ( 2.x rispetto a 3.x , o% di Applepython rispetto a python di MacPort)?
  • È importante che sul mio Mac siano installate più versioni di python ?
  • Possono essere usati contemporaneamente?

Spero in una risposta che abbia un breve elenco di alcuni pro / contro di ciascun approccio con alcune discussioni su quando scegliere l'uno rispetto all'altro.

    
posta jvriesem 06.05.2017 - 01:57
fonte

2 risposte

4

Possono essere usati contemporaneamente, e non ci dovrebbero essere problemi tra il mixaggio dei due (con una sorta di grande avvertimento e un trucco ...)

The Caveat

L'avvertenza è che macports / homebrew e pip non avranno consapevolezza di ciascuna installazione rispetto all'altra.

Quindi, per esempio, supponiamo di installare python 3.6 sul tuo Mac. Vuoi nltk , che non è tecnicamente disponibile per quella versione su Macport, ma è su pip. Quindi si installa su pip. Due mesi dopo, si vede installato su Macports e si sceglie di installarlo. Ora hai due diverse versioni di nltk sulla tua macchina, quindi caveat emptor .

The Gotcha

Se usi pip con Macports, devi assicurarti che sia il pip che viene installato tramite Macports e associato a quella versione di Python. Ad esempio, vedrai un py35-pip, py36-pip, ecc.

Una volta installato il pip corretto, usi il comando select di Macports per assicurarti che sia attivato con la versione appropriata di python:

sudo port select
    
risposta data 13.10.2017 - 06:16
fonte
1

Dovresti usare pip perché è lo strumento nativo di Python per la gestione delle installazioni di pacchetti ma non dovresti installare le cose nella tua installazione di base di Python. Può essere un disastro dover risolvere le dipendenze delle versioni fisse tra più repository software se si sta installando in pipe tutto nell'installazione Python di base sul proprio computer.

Invece, dovresti installare pip virtualenv e poi usarlo per gestire diverse installazioni Python virtuali e tutte le pacchetti di pacchetti installati su pip associati per ogni ambiente virtuale.

Ciò ti consente di passare dal lavoro con, ad esempio, beautifulsoup 1.x in un repository software a beautifulsoup 2.x in un altro repository senza dover guadare attraverso la gestione delle dipendenze.

    
risposta data 13.10.2017 - 07:02
fonte

Leggi altre domande sui tag