View Full Version : [Python] - errore
GidanTKA
28-07-2008, 15:15
Salve, non riesco a capire perchè questo script che ho fatto mi da degli errori anche se funziona bene.
il codice è qeusto:
from win32api import *
from win32gui import *
import threading
def Hide_Desktop():
h_progman = FindWindow(u"Progman",None) #Hidda il desktop
h_desktop = FindWindowEx(h_progman, 0, u"SHELLDLL_DefView", None)
h_desktop_listview = FindWindowEx(h_desktop, 0, u"SysListView32", None)
ShowWindow(h_progman, 0)
def Hide_StartBar():
Mimmo_Mimmo = FindWindowEx(0,0,"Shell_TrayWnd",None) #Hidda la barra start
ShowWindow(Mimmo_Mimmo,0)
class Operazione1 ( threading.Thread):
def run ( self ):
print 'Operazione 1 attiva'
Hide_Desktop()
class Operazione2 ( threading.Thread):
def run ( self ):
print 'Operazione 2 attiva'
Hide_StartBar()
Operazione1().start()
Operazione2().start()
gli errori che mi da son questi, anche se ottengo il risultato voluto:
File "C:\Python24\lib\lib-tk\Tkinter.py", line 1345, in __call__
return self.func(*args)
File "C:\Python24\lib\idlelib\ScriptBinding.py", line 165, in run_module_event
interp.runcode(code)
File "C:\Python24\lib\idlelib\PyShell.py", line 726, in runcode
self.tkconsole.endexecuting()
File "C:\Python24\lib\idlelib\PyShell.py", line 901, in endexecuting
self.showprompt()
File "C:\Python24\lib\idlelib\PyShell.py", line 1157, in showprompt
self.resetoutput()
File "C:\Python24\lib\idlelib\PyShell.py", line 1174, in resetoutput
self.set_line_and_column()
File "C:\Python24\lib\idlelib\EditorWindow.py", line 236, in set_line_and_column
line, column = self.text.index(INSERT).split('.')
ValueError: need more than 1 value to unpack
qualcuno saprebbe aiutarmi??
cdimauro
28-07-2008, 20:20
Non si capisce qual è la funzione che genera l'eccezione. Puoi riportare qualche altra informazione?
GidanTKA
28-07-2008, 20:59
Non si capisce qual è la funzione che genera l'eccezione. Puoi riportare qualche altra informazione?
Lo farei volentieri, ma non capisco di quali altri informazioni parli
cdimauro
28-07-2008, 21:07
Almeno qual è la riga del tuo codice che scatena l'eccezione.
GidanTKA
28-07-2008, 21:14
Almeno qual è la riga del tuo codice che scatena l'eccezione.
credo siano le classi, perchè prima non mi succedeva
cdimauro
28-07-2008, 22:20
Prova a non usare i thread, e se ancora hai problemi, usa una classe alla volta.
GidanTKA
28-07-2008, 22:31
Prova a non usare i thread, e se ancora hai problemi, usa una classe alla volta.
ma thread mi serve per poter avviare più funzioni contemporaneamente...
Se solto import thread non funziona nulla
ma thread mi serve per poter avviare più funzioni contemporaneamente...
Se solto import thread non funziona nulla
I thread sono il male, sei sicuro di saper cosa stai facendo? :stordita:
GidanTKA
28-07-2008, 23:49
I thread sono il male, sei sicuro di saper cosa stai facendo? :stordita:
più che altro non so cosa vorresti dire tu, con i thread faccio si che hide_bar e hide_desktop agiscano contemporaneamente
cdimauro
29-07-2008, 07:28
Sì, ma al momento hai un bug: il tuo programma NON funziona. Vogliamo vedere per quale motivo non va, prima di usare i thread? :O
FIRST MAKE IT WORK. :cool:
GidanTKA
29-07-2008, 11:12
Sì, ma al momento hai un bug: il tuo programma NON funziona. Vogliamo vedere per quale motivo non va, prima di usare i thread? :O
FIRST MAKE IT WORK. :cool:
Senza threading non funziona nulla, perchè è threading che fa funzionare le classi.
Se tolgo threading esce questo:
Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\Desktop\a.py", line 17, in ?
class Operazione1 ( threading.Thread):
NameError: name 'threading' is not defined
cdimauro
29-07-2008, 13:21
Non hai capito. Dicevo di fare così:
from win32api import *
from win32gui import *
import threading
def Hide_Desktop():
h_progman = FindWindow(u"Progman",None) #Hidda il desktop
h_desktop = FindWindowEx(h_progman, 0, u"SHELLDLL_DefView", None)
h_desktop_listview = FindWindowEx(h_desktop, 0, u"SysListView32", None)
ShowWindow(h_progman, 0)
def Hide_StartBar():
Mimmo_Mimmo = FindWindowEx(0,0,"Shell_TrayWnd",None) #Hidda la barra start
ShowWindow(Mimmo_Mimmo,0)
class Operazione1 (object):
def run ( self ):
print 'Operazione 1 attiva'
Hide_Desktop()
def start (self):
self.run()
#class Operazione2 ( threading.Thread):
# def run ( self ):
# print 'Operazione 2 attiva'
# Hide_StartBar()
Operazione1().start()
#Operazione2().start()
;)
GidanTKA
29-07-2008, 19:06
Non hai capito. Dicevo di fare così:
from win32api import *
from win32gui import *
import threading
def Hide_Desktop():
h_progman = FindWindow(u"Progman",None) #Hidda il desktop
h_desktop = FindWindowEx(h_progman, 0, u"SHELLDLL_DefView", None)
h_desktop_listview = FindWindowEx(h_desktop, 0, u"SysListView32", None)
ShowWindow(h_progman, 0)
def Hide_StartBar():
Mimmo_Mimmo = FindWindowEx(0,0,"Shell_TrayWnd",None) #Hidda la barra start
ShowWindow(Mimmo_Mimmo,0)
class Operazione1 (object):
def run ( self ):
print 'Operazione 1 attiva'
Hide_Desktop()
def start (self):
self.run()
#class Operazione2 ( threading.Thread):
# def run ( self ):
# print 'Operazione 2 attiva'
# Hide_StartBar()
Operazione1().start()
#Operazione2().start()
;)
Ahh!
Quindi è il thread che causa questi errori, ma cosa è che sbaglio con quest'ultimo?
cdimauro
29-07-2008, 21:32
E' un'ipotesi. Il codice non l'ho provato e speravo lo provassi tu.
Intanto prova e vedi se funziona oppure no. In base al responso vediamo poi di "aggiustarlo" per cercare di capire qual è la vera causa del problema ed eliminarla. ;)
GidanTKA
29-07-2008, 21:41
E' un'ipotesi. Il codice non l'ho provato e speravo lo provassi tu.
Intanto prova e vedi se funziona oppure no. In base al responso vediamo poi di "aggiustarlo" per cercare di capire qual è la vera causa del problema ed eliminarla. ;)
ti ringrazio per il tuo tempo, lo script lo ho avviato, ora non mi da più errore e mi funziona tutto in modo perfetto
cdimauro
30-07-2008, 07:26
Di nulla, figurati.
Soltanto un consiglio: all'inizio prova sempre delle soluzioni SEMPLICI. Il tuo codice ha un obiettivo fondamentale da raggiungere: deve funzionare. :p
Soltanto dopo, eventualmente, potresti sperimentare altre soluzioni. ;)
^TiGeRShArK^
30-07-2008, 08:34
Di nulla, figurati.
Soltanto un consiglio: all'inizio prova sempre delle soluzioni SEMPLICI. Il tuo codice ha un obiettivo fondamentale da raggiungere: deve funzionare. :p
Soltanto dopo, eventualmente, potresti sperimentare altre soluzioni. ;)
Make it simple, make it works, make it better :p
cdimauro
30-07-2008, 08:40
Santo Kent docet. :ave:
GidanTKA
30-07-2008, 08:50
ti ringrazio per il tuo tempo, lo script lo ho avviato, ora non mi da più errore e mi funziona tutto in modo perfetto
io intendo che funzioni però con la tua modifica, il problema c'è ancora e non so proprio cosa fare ora
cdimauro
30-07-2008, 08:51
Hai provato a eseguire in sequenza quelle due operazioni, senza usare i thread?
GidanTKA
30-07-2008, 12:10
Hai provato a eseguire in sequenza quelle due operazioni, senza usare i thread?
Si certo, prima funzionava bene, è con thread che si è tutto incasinato
DanieleC88
30-07-2008, 12:23
Un'osservazione, un consiglio, una richiesta:
osservazione: in Hide_Desktop() non usi mai h_desktop e h_desktop_listview, che le cerchi a fare? consiglio: dai alle variabili nomi un po' più descrittivi di Mimmo_Mimmo... :p richiesta: che lingua è "Hidda"? "Nascondi" andava bene, secondo me. :D
cdimauro
30-07-2008, 13:34
Si certo, prima funzionava bene, è con thread che si è tutto incasinato
Dal traceback il problema non mi sembra legato alle API win32, che tra l'altro sono pure thread safe se non erro, ma a qualcos'altro.
Hai provato a eseguire il programma da command-line (quindi fuori da un IDE)?
x Daniele: concordo. :D
GidanTKA
30-07-2008, 19:47
Hai provato a eseguire in sequenza quelle due operazioni, senza usare i thread?
Certo, prima infatti le usavo senza thread, solo ora che lo sto usando mi da questi problemi
cdimauro
31-07-2008, 07:33
Mi quoto:
Dal traceback il problema non mi sembra legato alle API win32, che tra l'altro sono pure thread safe se non erro, ma a qualcos'altro.
Hai provato a eseguire il programma da command-line (quindi fuori da un IDE)?
GidanTKA
31-07-2008, 19:49
Mi quoto:
Vi ringrazio per il vostro aiuto, vi annuncio che io domani parto, spero che quando torni voi ci siate ancora.
Saluti da GidanTKA
cdimauro
31-07-2008, 20:29
SGRAT SGRAT SGRAT :tie:
Buon viaggio. :)
DanieleC88
31-07-2008, 20:55
SGRAT SGRAT SGRAT :tie:
LOL, quotissimo. :D
GidanTKA
22-08-2008, 13:04
Dal traceback il problema non mi sembra legato alle API win32, che tra l'altro sono pure thread safe se non erro, ma a qualcos'altro.
Hai provato a eseguire il programma da command-line (quindi fuori da un IDE)?
x Daniele: concordo. :D
Salve a tutti, son tornato.
Ho provato ad eseguire il programma da command line e pare non mi dia nessun errore, quindi il problema è di idle?
cdimauro
22-08-2008, 13:18
A quanto pare sì. :)
GidanTKA
22-08-2008, 13:58
A quanto pare sì. :)
Ho provato a disinstallare e a reinstallare il compilatore ma il problema di idle c'è ancora, ma è un problema che ho solo io o è proprio un problema della versione 2.5?
cdimauro
22-08-2008, 14:18
Non credo. Può darsi che ci sia qualche conflitto fra le API Win32 e l'esecuzione dell'applicazione dentro IDLE.
GidanTKA
22-08-2008, 16:10
Non credo. Può darsi che ci sia qualche conflitto fra le API Win32 e l'esecuzione dell'applicazione dentro IDLE.
Ok, quindi posso anche ignorare quegli errori e continuare a scrivere il codice come se nulla fosse?
O mi conviene non utilizzare IDLE?
cdimauro
22-08-2008, 16:16
Prova con un altro IDE, chessò, uno a caso: SPE (http://pythonide.blogspot.com/) ;)
GidanTKA
22-08-2008, 18:25
Prova con un altro IDE, chessò, uno a caso: SPE (http://pythonide.blogspot.com/) ;)
Ok, ma non riesco a trovare il download per windows, mi potresti aiutare?
Ok, ma non riesco a trovare il download per windows, mi potresti aiutare?
http://developer.berlios.de/project/showfiles.php?group_id=4161
GidanTKA
22-08-2008, 20:34
http://developer.berlios.de/project/showfiles.php?group_id=4161
Ok grazie, ma come si fa ad installare?
variabilepippo
22-08-2008, 20:39
Decomprimi questo file (http://prdownload.berlios.de/python/SPE-0.8.4.c-wx2.6.1.0-no_setup.zip) in una cartella e fai doppio-click sul file spe.py (se hai già installato Python), io per i primi esperimenti con Python ti suggerisco PyScripter (http://code.google.com/p/pyscripter/downloads/list).
GidanTKA
22-08-2008, 20:55
Decomprimi questo file (http://prdownload.berlios.de/python/SPE-0.8.4.c-wx2.6.1.0-no_setup.zip) in una cartella e fai doppio-click sul file spe.py (se hai già installato Python), io per i primi esperimenti con Python ti suggerisco PyScripter (http://code.google.com/p/pyscripter/downloads/list).
ho klikkato su spe.py ma mi sembra non sia successo nulla.
a cosa mi serve precisamente PyScripter?
variabilepippo
22-08-2008, 21:09
Il file spe.py deve trovarsi in una cartella chiamata _spe, non in modo diverso.
pyScripter è un'alternativa a SPE, io lo trovo più semplice per i principianti.
GidanTKA
22-08-2008, 21:14
Il file spe.py deve trovarsi in una cartella chiamata _spe, non in modo diverso.
pyScripter è un'alternativa a SPE, io lo trovo più semplice per i principianti.
Ok, ti ringrazio, ma se volessi utilizzare PyScripter come facico ad aggiungerci delle librerie? ad esempio quelle di win32
Semplicemente le inserisci nella PYTHONPATH :)
variabilepippo
23-08-2008, 07:44
Ok, ti ringrazio, ma se volessi utilizzare PyScripter come facico ad aggiungerci delle librerie? ad esempio quelle di win32
Se installi ActivePython (http://www.activestate.com/Products/activepython/index.mhtml) ti ritrovi con tutto il necessario per sviluppare in Python (moduli aggiuntivi, moduli win32, documentazione estesa, ...).
Complete ActivePython Package
Python
Core Python binaries
Installers
* Windows: Microsoft Windows (MSI) package installer
* Mac OS X: Native OS X Package installer
* Linux: ActiveState "AS Package" installer
* Solaris: ActiveState "AS Package" installer
* AIX: ActiveState "AS Package" installer
* HP-UX: ActiveState "AS Package" installer
Documentation
A wealth of Python documentation, include the core Python docs, Dive into Python, the Non-Programmer's Python Tutorial, Python HOWTOs and FAQs, and more.
Windows Platform Extras
PyWin32 extensions (developed by Mark Hammond):
PythonCOM
Framework for writing COM components in Python and calling COM components from Python
Bindings
Python bindings to the Win32 API, registry, event log, and more
Pythonwin editor
Windows native Python editor
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.