Fenster unsichtbar laufen lassen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Hi!

ich hab heute einen mini-Chat erstellt, (naja, eher kopiert da ich kA hatte am Anfang... hab halt probieren alles so gut wie möglich zu verstehen usw), und wenn ich nun mit jemandem chatte (zb), dann haben ja beide immer die serverconsole offen - und selbst wenn nicht, hinter der client gui läuft die konsole. wie kann man diese "unsichtbar" machen?

MfG
-
deets

Indem man der Python-Datei die Endung "pyw" verpasst. Dann startet pythonw.exe, ohne konsole.

Windows ist einfach wunderbar...
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Vielen Dank!

Ok, eine Frage hätt ich noch: wie kann ich per python dateien konsolen-befehle "simulieren" ?
-
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Klar, du hast eine vollstaendige Programmiersprache an der Hand.

Aber ich glaube du willst eher Befehle ausfuehren, `subprocess` ist dein Freund.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Ok, thx :D ! Ich guck mir mal die Dokumentation dazu an :)


edit:

ich habe probiert mit

subprocess.Popen(['pfadzumeinerdatei', 'einargument das meine py datei braucht']) probiert die datei auszuführen - geht nicht...
-
deets

"Geht nicht" geht gar nicht. Als Fehlermeldung bzw. Problembeschreibung.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Code: Alles auswählen

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\lib\subprocess.py", line 593, in __init__
    errread, errwrite)
  File "C:\Python25\lib\subprocess.py", line 815, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
obwohl ich gaaaanz sicher den richtigen pfad angegeben hab...
-
deets

Gaaaaaaaanz sicher nicht. Wie ist denn der Pfad? Und bitte reinkopieren aus dem Skript das nicht laeuft, und nix aus dem Kopf oder sonstwie veraendertes.
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

C:\Users\deruser\Desktop\Chat\datei.py



deruser ist mein name, den wollte ich jetzt nich so richtig reinposten. (für die die wissen wollen was datei.py macht: ne mail mit anhang versenden. (ich will ein mail programm machen :D ) )
-
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Das Script bitte. Du musst uns schon zeigen wo wir helfen sollen.
Wenn du in die Werkstatt gehst nimmst du doch auch dein Auto mit und erzählst dem Mechaniker nicht nur von dem Geräusch.
deets

Es hat ja eigentlich einen Grund, Warum glaubst du habe ich geschrieben "genau so, wie er in dem Skript steht"? Weil ich deinen Usernamen rausfinden wollte, der mir schnurzpiepe ist, oder weil es wichtig ist, *WAS GENAU* du uebergibst?

Aber gottlob kann man auch so schon sehen, wo das Problem ist: ich vermute mal, dass dein Benutzername mit t oder n oder etwas anderem anfaengt - und deshalb dank der backslashes in Windows-Pfaden escaped wird.

Du musst also entweder einen raw-string verwenden (r"C:\foo\bar") oder deine backslashes doppelt escapen.

Und das alles haette schon vor 2 Stunden klar sein koennen, wenn du dich gleich mit dem richtigen Code + der dazugehoerigen Fehlermeldung hier kundgetan haettest....
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Code: Alles auswählen

#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!SCRIPT IST NICHT VON MIR!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!wollte nur ein bisschen mir rumtesten, habs auch schon etwas verändert, aber es ist nicht von mir !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
import sys, smtplib, os
from email.MIMEMultipart import MIMEMultipart
from email.MIMEBase import MIMEBase
from email.MIMEText import MIMEText
from email.Utils import formatdate
from email import Encoders

class SendMail(object):
  mailadress = '---------------'
  smtpserver = '--------------'
  username = '----------------'
  password = '---------------'

  def send(self, files):
    to = self.mailadress
    From = self.mailadress

    if len(files) <= 3: subjAdd = ','.join(files)
    if len(files) > 3: subjAdd = ','.join(files[:3]) + '...'
    subject = 'Dateiupload: ' + subjAdd
    msg = self.prepareMail(From, to, subject, files)

    server = smtplib.SMTP(self.smtpserver)
    server.ehlo() 
    server.starttls() 
    server.ehlo() 
    server.login(self.username, self.password)
    failed = server.sendmail(From, to, msg.as_string())
    server.quit()

  def prepareMail(self, From, to, subject, attachments):
    msg = MIMEMultipart()
    msg['From'] = From
    msg['To'] = to
    msg['Date'] = formatdate(localtime=True)
    msg['Subject'] = subject

    # The Body message is empty # nichts als inhalt
    msg.attach( MIMEText("") )

    for file in attachments:
      #We could check for mimetypes here, but I'm too lazy
      part = MIMEBase('application', "octet-stream")
      part.set_payload( open(file,"rb").read() )
      Encoders.encode_base64(part)
      part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(file))
      msg.attach(part)
      #Delete created Tar
    return msg

if __name__ == '__main__':
  mail = SendMail()
  mail.send(sys.argv[1:])
-
Benutzeravatar
sparrow
User
Beiträge: 4164
Registriert: Freitag 17. April 2009, 10:28

Da wird nirgends subprocess aufgerufen...
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Hab ihc auch nicht. ich habe per subprocess in der pythonshell diese datei aufgerufen. Das ist nur die zieldatei, nichts anderes. Der subprocess war in der shell :)
-
lackschuh
User
Beiträge: 281
Registriert: Dienstag 8. Mai 2012, 13:40

Mal eine Frage:

Müsste die korrekte Pfadangabe nicht

Code: Alles auswählen

C:\\Users\\deruser\\Desktop\\Chat\\datei.py
lauten anstelle von

Code: Alles auswählen

C:\Users\deruser\Desktop\Chat\datei.py
?

Ich hatte nämlich bei bottle am Anfang auch das Problem, dass ich nur einen Backslash verwendet habe und darum nichts ging...
Mad-Marty
User
Beiträge: 317
Registriert: Mittwoch 18. Januar 2006, 19:46

Dir wird gleich niemand mehr helfen,
wenn du es nicht auf die reihe kriegst, mal den richtigen Aufruf einzufügen.

Am besten aus der interaktiven shell testen und kopieren ala

>>> subprocess.Popen(['xxxxxxxxxxxxxx', 'yyyyyyyyyyyyyy'])
[Blah Blah ,,,,,, Error]
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

@lackschuh
Vielen Dank!!! Jetzt geht es!! Naja fast - Acces Denied ... :( Wieso denn das?

@Mad-Marty den code und das was ich eingegeben habe hatte ich glaube ich bereits gepostet - udn das problem lag an den backslashes..





Könnte man nicht durch "chmod" die Rechte geben auf die Datei zuzugreifen?
-
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Pyanfänger hat geschrieben:Könnte man nicht durch "chmod" die Rechte geben auf die Datei zuzugreifen?
Unter Windows eher nicht. Aber paste doch mal die gesamte Fehlermeldung, statt nur "Access Denied" (was mich übrigens nur an rote Fehlermeldungen aus schlechten Filmen mit Hackern erinnert, nicht an Dubugging).
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Pyanfänger
User
Beiträge: 99
Registriert: Mittwoch 28. Dezember 2011, 12:50

Ok, hier ist es:

Code: Alles auswählen

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python25\lib\subprocess.py", line 593, in __init__
    errread, errwrite)
  File "C:\Python25\lib\subprocess.py", line 815, in _execute_child
    startupinfo)
WindowsError: [Error 5] Access is denied
-
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ok, prima, und nun den Code, der diese Fehlermeldung auslöst.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten