[Python] Come determinare le dipendenze di un progetto Python senza Pipfile o requirements.txt?

Jacopo Cascioli jacopo a jacopocascioli.com
Ven 10 Apr 2020 20:40:11 CEST


Ciao Bruno,

Purtroppo Python ha un problema: il package management.

In tempi recenti, la PEP-517 è stata approvata (https://www.python.org/dev/peps/pep-0517/) e quindi sono usciti altri package manager che lavorano sulla 517, come https://python-poetry.org e https://github.com/takluyver/flit

Attenzione a pipenv, poichè non segue la PEP-517, ma viene comunque gestito dalla PyPA.

Infine qui (https://www.pypa.io/en/latest/history/) puoi trovare un un po' di storia sul package management in Python.

Jacopo Cascioli

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday 10 April 2020 15:04, bruno bossola <bbossola a gmail.com> wrote:

> Ciao a tutti,
>
> Riemergo sulla lista dopo qualche anno :) e come CTO di un'azienda. [Meterian](https://www.meterian.com/), che si occupa di sicurezza. In pratica il nostro tool, data una codebase, ne determina le dipendenze e verifica che nessuna di esse sia vulnerabile, out of date o che usi una licenza non business friendly. In pratica generiamo dei report tipo [questo](https://www.meterian.com/projects/?pid=2285a757-857f-4bdf-9b5e-d1c5acb27751) o [questo](https://www.meterian.com/projects/?pid=495ac650-b512-498d-b58b-fb5aff4d0320).
>
> Abbiamo implementato il supporto per Python fino a un certo punto :), al momento supportiamo Pipfile e requirements.txt (dove usiamo comunque pipenv per rigenerare il Pipfile) ma direi che ci manca supporto a tutto il resto e siccome io non sono un esperto di Python (cioe', conosco il linguaggio ma professionalmente lo uso solo per scripting e QA al momento) avrei bisogno di aiuto :)
>
> Intravedo per ora altri tre altri fondamentali sistemi per dichiarare le dipendenze:
>
> - setup.py
> - Venv
> - Conda
>
> Per quanto riguarda setup.py credo sia sufficiente usare "python setup.py egg_info" che genera il file <name>.egg-info/requires.txt che a quel punto mi posso andare a leggere. Unica cosa che ho notato e' che non sempre le dipendenze dichiarano una versione, e poi non sono sicuro di riuscire a generare il grafo quindi.... boh.
>
> Per quanto riguarda venv se ho capito bene crea un virtual environment con tutto dentro, quindi dovrebbe bastare zomparci dentro e fare un pip freeze. Pero' mi mancherebbe il vero grafo delle dipendenze.
>
> Per conda mi sto ancora studiando il tooling, ma mi sembra si possa ottteere il grafo con "conda create --dry-run --json -n <package>" oppure con il nuovo
> comando "conda.models.dag" (che pero' non sono riuscito a fare funzionare.
>
> Se avete suggerimenti li apprezzo molto volentieri. E se volete usare il tool comunque e' gratis per progetti opensource :)
>
> Grazie in anticipo e buona Pasqua (anche se casalinga quest'anno!).
> Ciao,
>
>     Bruno
>
> --
> Bruno Bossola
> CTO - [meterian.io](http://meterian.io/)
> [Scan your website now!](https://www.meterian.com/webscanner.html)
>
> [Scan your project now!](https://www.meterian.com/projectscanner.html)
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20200410/1644cfa3/attachment-0001.html>


Maggiori informazioni sulla lista Python