Seite 1 von 1

py2exe mal wieder

Verfasst: Montag 9. März 2009, 21:56
von sorgenlos
Hallo Leuts
wenn ich ein python script zur exe kompiliere
dann hab ich neben der exe im gleichen ordner auch noch:

Code: Alles auswählen

bz2.pyd
library.zip
python26.dll
select.pyd
unicodedata.pyd
w9xpopen.exe
_socket.pyd
_ssl.pyd
diese dateien sind ja essentiell damit die exe dann auch läuft,
gibt es aber eine alternative wo ich am ende dann wirklich
nur eine .exe habe zur einfachen distribution der datei?

Verfasst: Montag 9. März 2009, 22:02
von problembär
PyInstaller kann das mit der Option "--onefile" ...

Verfasst: Montag 9. März 2009, 22:40
von py-mule
Hi,
bei pyinstaller geht es auch mit -F.

Mehr dazu kann man z.B. hier lesen:

http://www.marcogabriel.com/blog/archiv ... eilen.html


Gruß
py-mule

Verfasst: Dienstag 10. März 2009, 11:20
von sorgenlos
danke für die infos, hat auch größtenteils geklappt nur mit einer nicht:

#dateiname:upload.py

Code: Alles auswählen

import sys, os
from ftplib import FTP

server = 'xxx'
username = 'xxx'
password = 'xxx'

def upload(fname):
    #remote_folder = "temporary" #wunschordner

    name = os.path.basename(fname) #filename fetchen
    name = name.replace(" ","-") #bindestriche ersetzen fuer besseres web-handling


    #Connect to server
    ftp = FTP(server)
    ftp.login(username, password)
    #ftp.cwd('public_html/'+remote_folder) #wechsel zu remote_folder
    #ftp.retrlines('LIST') #ausfuehrliches dir listing um ordnerberechtigungen zu ueberpruefen
    
    #Upload the file to the server
    print "Hochladen...",
    ftp.storbinary("STOR "+name, open(fname,"rb"))
    ftp.close()
    print "Fertig!"

upload(sys.argv[1])

Code: Alles auswählen

Traceback (most recent call last):
  File "<string>", line 2, in <module>
  File "C:\Python26\pyinstaller-1.3\iu.py", line 312, in importHook
    mod = _self_doimport(nm, ctx, fqname)
  File "C:\Python26\pyinstaller-1.3\iu.py", line 398, in doimport
    exec co in mod.__dict__
  File "C:\Python26\pyinstaller-1.3\upload\buildupload\out1.pyz/ftplib", line 46, in <module>
  File "C:\Python26\pyinstaller-1.3\iu.py", line 312, in importHook
    mod = _self_doimport(nm, ctx, fqname)
  File "C:\Python26\pyinstaller-1.3\iu.py", line 398, in doimport
    exec co in mod.__dict__
  File "C:\Python26\pyinstaller-1.3\upload\buildupload\out1.pyz/socket", line 46, in <module>
  File "C:\Python26\pyinstaller-1.3\iu.py", line 312, in importHook
    mod = _self_doimport(nm, ctx, fqname)
  File "C:\Python26\pyinstaller-1.3\iu.py", line 382, in doimport
    mod = director.getmod(nm)
  File "C:\Python26\pyinstaller-1.3\iu.py", line 215, in getmod
    mod = owner.getmod(nm)
  File "C:\Python26\pyinstaller-1.3\iu.py", line 77, in getmod
    mod = imp.load_module(nm, fp, attempt, (ext, mode, typ))
ImportError: DLL load failed: The specified module could not be found.

Verfasst: Mittwoch 11. März 2009, 10:41
von sorgenlos
habs geschafft, wens interessiert

ich habe die 2.5er Version von Python genommen und den neuesten Trunk von PyInstaller, dann funktionierts tadellos :)