Forum >> Principianti >> Moduli in cartelle diverse

Pagina: 1

Salve a tutti,

mi trovo in una situazione del genere:

/python
	apps/
		testScript.py
		calcoloDellaX.py

	frameworks/
		mieClassi/
			Point3d.py
			Shape.py
		altroFramework/
			xXx.py


nonostante abbia smanettato un pò col file __init__.py dalle mie applicazioni non riesco mai ad accedere alla classi delle cartelle sotto frameworks.

Come posso fare per risolvere questo piccolo problema?



--- Ultima modifica di vitolipari in data 2016-10-05 01:42:42 ---
nonostante abbia smanettato un pò col file __init__.py dalle mie applicazioni non riesco mai ad accedere alla classi delle cartelle sotto frameworks.

Come posso fare per risolvere questo piccolo problema?
Ma esattamente che problema hai? Non riesci ad accedere nemmeno col percorso assoluto? Sicuro non sia altro, ad esempio un problema di permessi?

Comunque riporta il codice e l'errore che ti viene restituito così capisco un po' meglio.

Cya
Ho scritto una semplice classe per la visualizzazione di una semplice progressBar, e un piccolo script che ne fa uso.
La classe sta in una cartella diversa dallo script che la usa, l'editor stesso mi da errore su self.

codice della classe in ~/frameworks/util/SimpleProgressBar.py
#!/usr/bin/env python
import sys

class SimpleBar:
   def __init__(self, border = False, startBorderChar = '', endBorderChar = ''):
        self.part = '|'
        self.voidPart = ' '
        self.fullPart = 100
        self.current = 0
        self.borders = border
        self.startBorderChar = startBorderChar
        self.endBorderChar = endBorderChar

   def update( self, p ):
	self.current = int( p * 100 )
	if self.current > 100 :
            self.current = 100
	for i in range( self.current ):
            sys.stdout.write('\r')
            if self.borders and self.startBorderChar is None : sys.stdout.write('[')
            if self.borders and self.startBorderChar is not None : sys.stdout.write(str(self.startBorderChar))
            sys.stdout.write( self.part * i )
            sys.stdout.write( (self.fullPart - i) * self.voidPart )
            if self.borders and self.endBorderChar is None : sys.stdout.write('] ')
            if self.borders and self.endBorderChar is not None : sys.stdout.write(str(self.endBorderChar) + ' ')
            sys.stdout.write(str(self.current) )
            sys.stdout.flush()
            if self.current == 100 and i == ( self.current -1 ):
                print(' ')




questo il codice dello script che ne fa uso in ~/app/TestSimpleProgressBar/testSimpleProgressBar.py
#!/usr/bin/env python
import time
import random
import sys

# ERROR da Aggiustare
from frameworks.util import SimpleProgressBar

bar = 0

if len(sys.argv) > 1 :
    if sys.argv1 == '--border' :
        startBorder = None
        endBorder = None

        if( len(sys.argv) > 2 ) : startBorder = sys.argv2
        if( len(sys.argv) > 3 ) : endBorder = sys.argv3

        bar = SimpleProgressBar.SimpleBar( True, startBorder, endBorder )

if not type(bar) is SimpleProgressBar.SimpleBar :
        bar = SimpleProgressBar.SimpleBar()

progress = 0.0

while progress < 1:
   progress += (random.random() / 2)
   progress *= 1000
   progress = int(progress)
   progress /= 1000
   bar.update( progress )
   time.sleep(0.5)
print(' ')



Se la classe e lo script che la usa, si trovano nella stessa cartella il problema non si verifica!


--- Ultima modifica di vitolipari in data 2016-10-06 11:36:33 ---

--- Ultima modifica di vitolipari in data 2016-10-06 11:38:18 ---

--- Ultima modifica di vitolipari in data 2016-10-06 12:05:26 ---
Ora non ho la possibilità di fare una verifica, ma credo che l'errore
Derivi dal fatto che sull'import di chi deve usare la classe
NON usi il percorso assuluto


Pagina: 1



Esegui il login per scrivere una risposta.