PDA

Visualizza la versione completa : [Python] Problemi con import


fermat
31-03-2017, 17:22
ciao!

in un mio progetto, creato con pycharm, ho creato un package con dentro due file:
- main.py
- resizeimage.py

nel secondo file c'è questo:


import glob, os
from PIL import Image

class ResizeImage:
def resize(self, dirFrom, dirTo, w, h):
if os.path.isdir(dirFrom) and os.path.isdir(dirTo) and dirFrom.endswith('/') and dirTo.endswith('/'):
if w > h:
h = w + 1
elif h > w:
w = h + 1

size = (w, h)

extensions = ["*.png", "*.jpeg", "*.jpg"]
allFiles = [glob.glob(dirFrom + ext) for ext in extensions]
lista = [elem for sublista in allFiles for elem in sublista]
for infile in lista:
try:
file, ext = os.path.splitext(infile)
name = os.path.basename(file)
im = Image.open(infile)
im.thumbnail(size, Image.ANTIALIAS)
im.save(dirTo + name + ext)
print(dirTo + name + ext)
except IOError as e:
print(e)
else:
print("La directory iniziale o finale non esiste, o non finiscono con /")


nel primo questo:


import argparse

from resize.resizeimage import ResizeImage

if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument('dirFrom', help='Path che contiene le immagini, con / finale', type=str)
parser.add_argument('dirTo', help='Path dove salvare le immagini, con / finale', type=str)
parser.add_argument('w', help='Larghezza di ridimensionamento', type=int)
parser.add_argument('h', help='Altezza di ridimensionamento', type=int)
args = parser.parse_args()
ri = ResizeImage()
ri.resize(args.dirFrom, args.dirTo, args.w, args.h)

quando lancio main.py, ottengo sempre questo errore:


$ python main.py 'a' 'b' 100 20
Traceback (most recent call last):
File "main.py", line 3, in <module>
from resize.resizeimage import ResizeImage
ModuleNotFoundError: No module named 'resize'

non riesco a capire il motivo!!

clasku
31-03-2017, 17:49
resize.resizeimage credo sia sbagliato, prova solo con resizeimage

hai messo un file __init__.py nella cartella?

MItaly
31-03-2017, 17:52
Be', è normale... il tuo file si chiama resizeimage.py e sta allo stesso livello di main.py, quindi l'import dovrà essere


from resizeimage import ResizeImage

fermat
31-03-2017, 18:19
Be', è normale... il tuo file si chiama resizeimage.py e sta allo stesso livello di main.py, quindi l'import dovrà essere


from resizeimage import ResizeImage


si, come uno scemo mi sono fatto ingannare dal fatto che pycharm me la sottolinea in rosso, come se ci fosse un errore.
però lanciando lo script, funziona.
bho!

MItaly
02-04-2017, 02:22
Probabilmente PyCharm per qualche motivo pensa che la root del progetto sia un livello sopra? :confused:

fermat
02-04-2017, 12:37
Probabilmente PyCharm per qualche motivo pensa che la root del progetto sia un livello sopra? :confused:

domani appena arrivo in ufficio controllo se c'è qualche impostazione al riguardo!!

fermat
03-04-2017, 10:21
ok, ho settato resize come Source root, e pycharm non mi segnala più errore.
era quello il "problema".

grazie!!
:ciauz:

MItaly
03-04-2017, 10:40
:ciauz:

Loading