[Python] Sviluppo di nuovo package e import problem
Francesco Pischedda
francesco.pischedda a gmail.com
Mer 21 Giu 2017 09:41:51 CEST
Ciao,
Il giorno 21 giugno 2017 08:24, Karim <lemieliste a gmail.com> ha scritto:
> Salve lista, sono talmente abituato ad usare django che ora che devo farmi
> un package che avrei il piacere di distribuire, mi scontro con problemi
> banalissimi.
>
>
> Ho creato questo package
>
> pyfaction/
> ├── __init__.py
> ├── __pycache__
> ├── conn.py
> ├── constants.py
> ├── exceptions.py
> ├── managers
> │ ├── __init__.py
> │ ├── __pycache__
> │ ├── apps.py
> │ ├── base.py
> │ ├── domains.py
> │ └── tests
> │ ├── __init__.py
> │ ├── __pycache__
> │ ├── tests_apps.py
> │ └── tests_domains.py
> └── utils.py
>
>
> se sono sul modulo conn.py e faccio:
>
> from .managers.apps import MyClass
>
> Tutto e' ok.
>
> Se da managers/domains faccio:
>
> from ..exceptions import MyException
>
Anche se stai facendo un riferimento verso un modulo interno del tuo
package credo che in questo caso sarebbe meglio usare from
pyfaction.exceptions import MyException; quando il package sarà finito e
installato in site-packages questo dovrebbe funzionare "normalmente" mentre
in fase di sviluppo credo ti convenga lavorare con PYTHONPATH
in alcuni casi, specialmente per le fasi di sviluppo e test, ho trovato
comodo aggiungere il parent della directory del package al sys.path in
questo modo
import *sys*
*sys*.path.append('..')
questo perchè avevo bisogno di avere il package visibile ad un progetto di
test che lo avrebbe usato, immagina una struttura del genere
mypackage
- __init__.py
- somecode.py
exampleproject
- myexamplecode.py
cmq dipende molto da come è impostato il tuo progetto
--
"Unix IS user friendly. It's just selective about who its friend are"
"Nevertheless I still think it’s a bad idea to make things harder for
ourselves if we can avoid it."
"C is quirky, flawed, and an enormous success."
-- Dennis Ritchie
"Shipping is a feature. A really important feature. Your product must have
it."
"There is no such a thing as a temporary change or workaround: In most
cases, workarounds are tech debt."
"La gatta frettolosa ha fatto i gattini ciechi"
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20170621/bb32f02c/attachment.html>
Maggiori informazioni sulla lista
Python