Topic: distribuire script python con distutils.core  (Letto 603 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline madlollo

  • python unicellularis
  • *
  • Post: 3
  • Punti reputazione: 0
    • Mostra profilo
distribuire script python con distutils.core
« il: Novembre 29, 2017, 18:34 »
Ciao,

sto cercando di creare un pacchetto per distribuire facilmente i miei script nei vari pc dove dovrei utilizzarlo. La struttura dei files è la seguente:

root/
    setup.py
    mypackage/
        __init.py__
        file1.py
        file2.py
        file3.py
        utils/
            __init.py__
            file4.py

dove in file1.py è contenuta la classe che deve essere utilizzata, cioè che poi vorrei importare nell'IDE quando mi serve, mentre negli altri file ci sono classi e funzioni di supporto all'applicazione.
Seguendo le indicazioni sul tutorial di distutils ho scritto il file setup.py nel modo seguente:
    from distutils.core import setup
    setup=(name='mypackage', version='1.2.0', packages=['mypackage'], py_modules=['mypackage.file1.py', 'mypackage.file2.py', 'mypackage.file3.py', 'mypackage.utils.file4.py'])

e lanciando da terminale i comandi: python setup.py install e poi python setup.py sdist, viene installato il pacchetto nel sistema e generato il tar.gz.
Tuttavia quando vado a importare il package dall'IDE con: import mypackage, non riesco a istanziare la mia classe con:

mia_classe=mypackage.file1.MiaClasse()

e python mi ritorna il seguente errore:
AttributeError: 'module' object has no attribute 'file1'

Cosa sto sbagliando ?
Grazie


Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re:distribuire script python con distutils.core
« Risposta #1 il: Novembre 30, 2017, 23:59 »
Dalla documentazione di distutils:

"""
Most Python users will not want to use this module directly, but instead use the cross-version tools maintained by the Python Packaging Authority. In particular, setuptools is an enhanced alternative to distutils that provides:

"""

Sei *proprio* sicuro di non volere lavorare con setuptools? Perche' personalmente su sta china io non ti seguo.
Di solito quando la documentazione di qualcosa ti dice di usare qualcos'altro e' mancanza di buon senso non ascoltarla.
Io temo che sia solo la pigrizia di non volere mettersi ad installare quella roba.

Ma ti garantisco che il tempo che ti fanno risparmiare supera molto presto il tempo che perdi all'inizio.

Detto questo ci sono tante cose che non mi tornano in quello che scrivi. Specialmente non ho idea della configuazione in cui e' il tuo pc. Non ci sono tante informazioni potenzialmente utili.