Come distinguere i due tipi di "pacchetti" Python

4

Nell'ecosistema Python, ci sono due concetti correlati ma distinti chiamati "pacchetto":

  1. A "nome del modulo puntato" , rappresentato nella sua origine come una directory con __init__ modulo (cioè un file __init__.py ) (+ solitamente più moduli / *.py file e talvolta pacchetti annidati) in esso
  2. Un'unità software distribuita tramite PyPI - l'indice dei pacchetti Python e installabile con pip

Nella maggior parte delle conversazioni, è chiaro dal contesto che tipo di pacchetto si riferisce quando si dice "pacchetto" o "pacchetto python". In alcune altre conversazioni, la distinzione non ha nemmeno importanza.

Ma a volte le distinzioni non sono chiare ma contano:

"The [type 2] package Jinja2 is written with a capital 'J', but the [type 1] package jinja2 it provides is written all-lower-case. With SciPy and NumPy however, while the project names are written in camel-case, both the [type 2] packages and the [type 1] packages are written all-lower-case and numpy is usually imported as just np."

In queste situazioni, ho iniziato a chiamare il secondo tipo "pacchetto PyPI" (pronunciato [paɪpiaɪ pækɪdʒ] per distinguerlo da " PyPy "([Paɪpaɪ])). Tuttavia, non sono sicuro di come chiamare i pacchetti del primo tipo.

Esistono alcune convenzioni su come chiamare ciascun tipo di pacchetto quando devono essere distinti?

    
posta das-g 10.07.2016 - 13:17
fonte

1 risposta

1

Ci sono pacchetti (il tuo tipo 1) e pacchetti con file aggiunti (setup.py) per distribuire tramite PyPI (il tuo tipo 2).

Entrambi sono pacchetti e dovrebbero seguire la convenzione di denominazione per i pacchetti, che significa minuscola per il nome del pacchetto.

Informazioni sull'esempio Jinja2: il nome del file su PyPI per Jinja2 inizia con una maiuscola: "Jinja2-2.8.tar.gz". Ma dopo aver scaricato ed estratto il file, c'è una sottocartella chiamata "jinja2", e questa cartella ha un file init, quindi è da considerarsi come il vero pacakage, ed è scritta in lettere minuscole.

Quindi non sembra esserci alcuna convenzione di denominazione per file compressi e nomi di progetti, può essere quello che vuoi che sia. Solo i nomi dei pacchetti seguono la convenzione in lettere minuscole.

Ma per rispondere alla domanda: non sono a conoscenza di alcuna differenza nel nome per il tipo 1 e il tipo 2.

Il tipo 1 fa riferimento a un pacchetto Python, mentre il tipo 2 è una cartella (compressa) che contiene un pacchetto Python.

    
risposta data 10.07.2016 - 17:46
fonte

Leggi altre domande sui tag