|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
python, py2exe e COM
Ho sviluppato un programmino in python che usa excel tramite COM. Ora vorrei farne un eseguibile con py2exe ma la generazione mi fallisce con il messaggio
The following modules appear to be missing ['pythoncom'] Ho anche cercato su google ma non ho trovato una soluzione... qualche idea ? |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
uhm....
mi sembra semplice come linguaggio o sbaglio ? ho letto qua: http://programmazione.html.it/python/python_02.htm e se mi dai qualche dritta sto scrivendo pure io codice per manipolare fogli di excel, questo linguaggio è ideale ? Ultima modifica di misterx : 23-09-2004 alle 18:01. |
|
|
|
|
|
#3 | ||
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
Quote:
Se pero' come me il foglio excel lo lavori "dall'esterno, allora python va benissimo. Ad esempio in ditta lo uso per generarmi i files delle connessioni Terminal Server a partire dall'anagrafica dei clienti presente su di un foglio excel. U Usare excel o word da python e' molto semplice, tanto quanto con Visual Basic (ma col vantaggio che python e' un linguaggio molto piu' flessibile). Ad esempio (vado a memoria, essendo sotto linux al momento non lo posso testare Codice:
def generate_rdp( client , address ):
f = file(r'c:\' + client + '.rdp' , 'w' )
f.write( "blah blah blah" )
f.close()
from win32com.clients import Dispatch
excel = Dispatch("Excel.Application")
wb = excel.Workbooks.Open(r'c:\prova.xls')
sheet = wb.Sheets[0]
for row in range(0,100):
client = sheet.Cell(row,0)
addr = sheet.Cell(row,1)
generate_rdp(client,addr)
# eccetera
|
||
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
visto così mi ricorda un misto di C e visual basic
ho idea che faccia al caso mio in quanto devo prelevare c'è anche la possibilità di selezionare il foglio della cartella che hai aperto ? |
|
|
|
|
|
#5 | ||
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
Quote:
Ti ho pure fatto l'esempio apposta Codice:
... sheet = wb.Sheets[0] ... |
||
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
cominciamo proprio bene
ImportError: No module named win32com.client |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
fatto, mancava il solito pezzo = modulo = estenzione = ....
|
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
|
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ora provo a creare l'eseguibile, sperem....
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
ma anzichè in bytecode, non si può creare un eseguibile stand-alone?
|
|
|
|
|
|
#11 |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Piu' o meno.
Esiste un programma chiamato py2exe che prende ti prepara un programma in formato exe. In realta penso che prepari un mini run-time che va ad eseguire il bytecode |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
allora è una fregatura
se devi distribuire un programma devi far installare loro una sorta di "python machine" ? |
|
|
|
|
|
#13 | |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
Copi la cartella e sei a cavallo. |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
a me non crea nulla
|
|
|
|
|
|
#15 | |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
Se ad esempio hai un file myscript.py di cui vuoi generare un eseguibile, crei un altro file python (setup.py) con il seguente contenuto Codice:
# setup.py
from distutils.core import setup
import py2exe
setup(console=["myscript.py"])
|
|
|
|
|
|
|
#16 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
fatto marco,
mi mancava una dll |
|
|
|
|
|
#17 |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
OT
risolto il tuo problema iniziale ? sai come si fa a selezionare un foglio dopo che hai aperto una cartella di lavoro ? ho provato con: ..... wb = excel.Workbooks.Open(r'c:\prova.xls') wb.WorkSheets(2).Activate .... ma non funziona |
|
|
|
|
|
#18 | |
|
Bannato
Iscritto dal: Jul 2000
Città: Malo (VI)
Messaggi: 1000
|
Quote:
Se fai wb = excel.Workbooks.Open(r'c:\prova.xls') print dir(wb.WorkSheets) dovresti ottenere sulla console la lista di tutti i metodi di WorkSheets (ignora pure quelli che iniziano con '_' ). |
|
|
|
|
|
|
#19 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
questa è un'informazione che vale oro io a casa invece non ho installato Excel, siamo pari grazie |
|
|
|
|
|
|
#20 | |
|
Senior Member
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
|
Quote:
wb.WorkSheets(2).Activate() = wb.WorkSheets(2).Select() |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 14:46.



















