cx_freeze

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.
Antworten
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Hi,

Ich wollte eigentlich wie bei Windows -> EXE auch bei Ubuntu eine Application erstellen.
Dazu hatte ich cx_freeze gefunden aber bein erstellen meines Test programms gab es eine Fehlermeldung:

Code: Alles auswählen

jtschoch@jt:/home/jtschoch$ sudo cxfreeze ./hello.py
creating directory /home/jtschoch/dist
copying /usr/lib/pymodules/python2.7/cx_Freeze/bases/Console -> /home/jtschoch/dist/hello
copying /usr/lib/libpython2.7.so.1.0 -> /home/jtschoch/dist/libpython2.7.so.1.0
Traceback (most recent call last):
  File "/usr/bin/cxfreeze", line 5, in <module>
    main()
  File "/usr/lib/pymodules/python2.7/cx_Freeze/main.py", line 170, in main
    freezer.Freeze()
  File "/usr/lib/pymodules/python2.7/cx_Freeze/freezer.py", line 405, in Freeze
    self._FreezeExecutable(executable)
  File "/usr/lib/pymodules/python2.7/cx_Freeze/freezer.py", line 173, in _FreezeExecutable
    exe.copyDependentFiles, scriptModule)
  File "/usr/lib/pymodules/python2.7/cx_Freeze/freezer.py", line 333, in _WriteModules
    initModule = finder.IncludeFile(initScript, "cx_Freeze__init__")
  File "/usr/lib/pymodules/python2.7/cx_Freeze/finder.py", line 386, in IncludeFile
    deferredImports)
  File "/usr/lib/pymodules/python2.7/cx_Freeze/finder.py", line 259, in _LoadModule
    module.code = compile(fp.read() + "\n", path, "exec")
TypeError: compile() expected string without null bytes
Und hier das python skript:

Code: Alles auswählen

#!/usr/bin/python

print "Hallo Welt"
Ich hoffe ihr könnt mir Helfen.

Es funktioniert, ich weiß wo der Fehler war,
was ganz anderes.

Ich hatte nautilus als root in der Konsole aufgerufen,
ich hatte immer mit doppelklick die Anwendung gestartet.
Daserschien im Konsolenfenster,
und da war der Error.

Ich versuchte es so direckt über die Konsole Aufzurufen ... und es funktionierte da stand dann True
Zuletzt geändert von jtschoch am Dienstag 20. Dezember 2011, 15:24, insgesamt 1-mal geändert.
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Lass mal lieber mit dem Einfrieren und überlasse deiner Zielgruppe deine Programme in offengelegter Form mit der Möglichkeit sie eigenhändig zu verbessern 8)

edit: Siehe da, du bist nicht der erste, der dieses Problem erlebt.
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Ich weiß ich hatte schon gegooglelt,
aber keine richtige Lösung gefunden.

Gibt es noch ein Modul wass .py zu Application machen kann?
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Hast du überhaupt gelesen was drin steht? Zuerst von der offiziellen Seite den Quellcode des Moduls runterladen und manuell installieren (es könnte ja sein, dass dieses Problem in den vorgefertigten Modulen immer noch nicht korrigiert wurde), falls das nicht reicht, eine Datei wie beschrieben patchen.

Oder lass es alternativ sein, auf unixoiden Systemen kannst du so gut wie immer von einem nutzbarem Python-Interpreter ausgehen und musst dir deswegen das nicht antun.
Zuletzt geändert von webspider am Sonntag 18. Dezember 2011, 18:49, insgesamt 1-mal geändert.
LivingOn
User
Beiträge: 33
Registriert: Montag 11. August 2008, 07:53

mit http://www.pyinstaller.org/ habe ich einige gute Erfahrungen unter Windows gemacht. Soll aber auch für Linux, Mac OS X, Solaris und AIX eigenständige Anwendungen "bauen".
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Danke für den Tipp
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Ich habe mir jetzt pyinstaller angeschaut,
und habe die .py -> app. gemacht, bis dort hin,
wo ich es Ausführen wollte, meine print ausgaben
hat es gemacht bis zum raw_input:

Code: Alles auswählen

 
print ("\033[1;34mAngabeformat: Stunde:Minute(00:00)\033[m")
begrennzte_zeit = raw_input("Zeitbegrenzung: ")
Da bekam ich einen EOFerror:

Code: Alles auswählen

TimeLimiter(0.3) for Linux
Angabeformat: Stunde:Minute(00:00)
Zeitbegrenzung: Traceback (most recent call last):
  File "<string>", line 295, in <module>
  File "<string>", line 136, in run_timelimiter
EOFError: EOF when reading a line
Ich hoffe ihr könnt mir Helfen!
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

"\0" wird wahrscheinlich als Nullbyte interpretiert, also im Sinne von einem abruptem Ende des Strings.
BlackJack

@webspider: Nur '\0' ist ein Nullbyte aber da folgen ja noch Ziffern die zusammen als Bytewert in Okalschreibweise interpretiert werden:

Code: Alles auswählen

In [154]: '\033'
Out[154]: '\x1b'
Ausserdem wird das ja ausgegeben und das EOF kommt offenbar von der Eingabe.
webspider
User
Beiträge: 485
Registriert: Sonntag 19. Juni 2011, 13:41

Dann muss er wohl aufhören der Eingabe ungefiltert zu vertrauen, bzw. mal nachschauen wieso überhaupt ein Nullbyte (oder was auch immer den Fehler hervorruft) vorhanden ist.

Was ich ihm leider nicht wirklich zutraue. Und ich sollte mal selbst testen bevor ich hier weiter so blindlings rate.
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@webspider:
Das hat nichts mit der Nullterminierung eines Strings zu tun, selbst unter C kann man beliebige Bytesequenzen (also auch mit \0) aus Dateien/STDIN lesen. Zumal es von STDIN kommt und \033, was jtschoch nach STDOUT schreibt, ESC ist.

Hab auch nur 2 Vermutung parat und kann es selbst grad nicht testen:

Was liefert denn folgender Code im pyinstaller-binary:

Code: Alles auswählen

import sys
print sys.stdin.isatty()
Falls da False steht, obwohl Du das "Binary" von einem Terminal aus aufgerufen hast, liegts an pyinstaller, das in diesem Falle die Std-Ein-/-Ausgabe wahrscheinlich über file-like-objects umbiegt. Dann hast Du schlechte Karten für die Benutzung von raw_input().

Falls da True steht, bekommt das zugrundeliegende Terminal irgendwo ein '\x04' her (Ctrl+d), was die Eingabe verfrüht beendet. (So als hätte man Ctrl+d bei bei raw_input() gedrückt). Dann ist allerdings fraglich, wo das Zeichen herkommt bzw. warum das Terminal "auflegt".
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

@jtschoch:
Ich hab mir Pyinstaller-Code mal angeschaut und es zum ersten Mal unter Linux ausprobiert und es funktioniert ohne Probleme. Da passiert nichts Ungewöhnliches mit dem Terminal, der Child-Prozess wird normal über fork-exec gestartet und erbt die Standardhandles vom Parent. Getestet habe ich es mit pyinstaller 1.5.1 und Python 2.7 mit den Buildeinstellungen --onedir und --onefile.

Wie erzeugst Du das Binary, welche Schalter hast Du gesetzt? Hast Du es von einer interaktiven Shell gestartet? Welche Pyinstaller-Version setzt Du ein? Läuft der Buildprozess ohne Fehler durch?
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Beim ersten mal hatte ich onedir und one file weggelassen, aber dann hatte
ich es dazu getahn, aber der Fehler bleibt.

Ich habe das Terminal verwendet(Standart bei Ubuntu) und das gibt folgendes aus:

Makespec.py:

Code: Alles auswählen

kespec.py --onefile --onedir /home/jtschoch/Desktop/Zeitbegrennzungs-Tool/TimeLimiter/timelimiter
wrote /usr/lib/pymodules/python2.7/pyinstaller-1.5.1/timelimiter/timelimiter.spec
now run Build.py to build the executable
Build.py:

Code: Alles auswählen

checking Analysis
building because /home/jtschoch/Desktop/Zeitbegrennzungs-Tool/TimeLimiter/timelimiter changed
running Analysis outAnalysis0.toc
Analyzing: support/_mountzlib.py
Analyzing: support/useUnicode.py
Analyzing: /home/jtschoch/Desktop/Zeitbegrennzungs-Tool/TimeLimiter/timelimiter
I: Analyzing /usr/bin/python2.7
I: Skipping libpthread.so.0 dependency of python2.7
I: Skipping libdl.so.2 dependency of python2.7
I: Adding libutil.so.1 dependency of python2.7
I: Adding libssl.so.1.0.0 dependency of python2.7
I: Adding libcrypto.so.1.0.0 dependency of python2.7
I: Adding libz.so.1 dependency of python2.7
I: Skipping libm.so.6 dependency of python2.7
I: Skipping libc.so.6 dependency of python2.7
I: Analyzing /lib/i386-linux-gnu/libutil.so.1
I: Skipping libc.so.6 dependency of libutil.so.1
I: Analyzing /lib/i386-linux-gnu/libssl.so.1.0.0
I: Skipping libc.so.6 dependency of libssl.so.1.0.0
I: Skipping libdl.so.2 dependency of libssl.so.1.0.0
I: Analyzing /lib/i386-linux-gnu/libcrypto.so.1.0.0
I: Skipping libdl.so.2 dependency of libcrypto.so.1.0.0
I: Skipping libc.so.6 dependency of libcrypto.so.1.0.0
I: Analyzing /lib/i386-linux-gnu/libz.so.1
I: Skipping libc.so.6 dependency of libz.so.1
I: Analyzing /usr/lib/python2.7/lib-dynload/datetime.so
I: Skipping libm.so.6 dependency of datetime.so
I: Skipping libpthread.so.0 dependency of datetime.so
I: Skipping libc.so.6 dependency of datetime.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_codecs_tw.so
I: Skipping libpthread.so.0 dependency of _codecs_tw.so
I: Skipping libc.so.6 dependency of _codecs_tw.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_heapq.so
I: Skipping libpthread.so.0 dependency of _heapq.so
I: Skipping libc.so.6 dependency of _heapq.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_codecs_iso2022.so
I: Skipping libpthread.so.0 dependency of _codecs_iso2022.so
I: Skipping libc.so.6 dependency of _codecs_iso2022.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_codecs_hk.so
I: Skipping libpthread.so.0 dependency of _codecs_hk.so
I: Skipping libc.so.6 dependency of _codecs_hk.so
I: Analyzing /usr/lib/python2.7/lib-dynload/bz2.so
I: Adding libbz2.so.1.0 dependency of bz2.so
I: Skipping libpthread.so.0 dependency of bz2.so
I: Skipping libc.so.6 dependency of bz2.so
I: Analyzing /usr/lib/python2.7/lib-dynload/termios.so
I: Skipping libpthread.so.0 dependency of termios.so
I: Skipping libc.so.6 dependency of termios.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_codecs_kr.so
I: Skipping libpthread.so.0 dependency of _codecs_kr.so
I: Skipping libc.so.6 dependency of _codecs_kr.so
I: Analyzing /usr/lib/python2.7/lib-dynload/pyexpat.so
I: Adding libexpat.so.1 dependency of pyexpat.so
I: Skipping libpthread.so.0 dependency of pyexpat.so
I: Skipping libc.so.6 dependency of pyexpat.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_multibytecodec.so
I: Skipping libpthread.so.0 dependency of _multibytecodec.so
I: Skipping libc.so.6 dependency of _multibytecodec.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_codecs_jp.so
I: Skipping libpthread.so.0 dependency of _codecs_jp.so
I: Skipping libc.so.6 dependency of _codecs_jp.so
I: Analyzing /usr/lib/python2.7/lib-dynload/_codecs_cn.so
I: Skipping libpthread.so.0 dependency of _codecs_cn.so
I: Skipping libc.so.6 dependency of _codecs_cn.so
I: Analyzing /usr/lib/python2.7/dist-packages/_dbus_bindings.so
I: Adding libdbus-1.so.3 dependency of _dbus_bindings.so
I: Skipping libpthread.so.0 dependency of _dbus_bindings.so
I: Skipping libc.so.6 dependency of _dbus_bindings.so
I: Skipping librt.so.1 dependency of _dbus_bindings.so
I: Analyzing /usr/lib/python2.7/lib-dynload/readline.so
I: Adding libreadline.so.6 dependency of readline.so
I: Skipping libpthread.so.0 dependency of readline.so
I: Skipping libc.so.6 dependency of readline.so
I: Adding libtinfo.so.5 dependency of readline.so
I: Analyzing /lib/libbz2.so.1.0
I: Skipping libc.so.6 dependency of libbz2.so.1.0
I: Analyzing /lib/i386-linux-gnu/libexpat.so.1
I: Skipping libc.so.6 dependency of libexpat.so.1
I: Analyzing /lib/i386-linux-gnu/libdbus-1.so.3
I: Skipping libpthread.so.0 dependency of libdbus-1.so.3
I: Skipping librt.so.1 dependency of libdbus-1.so.3
I: Skipping libc.so.6 dependency of libdbus-1.so.3
I: Analyzing /lib/libreadline.so.6
I: Skipping libc.so.6 dependency of libreadline.so.6
I: Analyzing /lib/libtinfo.so.5
I: Skipping libc.so.6 dependency of libtinfo.so.5
./timelimiter/build/pyi.linux2/timelimiter/outAnalysis0.toc no change!
checking PYZ
checking PKG
checking EXE
building because outEXE2.toc is bad
building EXE from outEXE2.toc
Appending archive to EXE ./timelimiter/build/pyi.linux2/timelimiter/timelimiter
checking COLLECT
WARNING: The output directory "./timelimiter/dist/timelimiter" and ALL ITS CONTENTS will be REMOVED! Continue? (y/n)y
I: Removing ./timelimiter/dist/timelimiter
building outCOLLECT4.toc because ./timelimiter/dist/timelimiter/timelimiter is missing
building COLLECT outCOLLECT4.toc
Was ich komisch finde nach den Optionen --onefile --onedir ist es tzotzdem nomarl!

Aber das Warninglogfile ist sehr Auffällig:

Code: Alles auswählen

W: no module named org (delayed import by xml.sax)
W: no module named _subprocess (conditional import by subprocess)
W: no module named _dummy_threading (top-level import by dummy_threading)
W: no module named _sha (delayed, conditional import by hashlib)
W: no module named org (top-level import by pickle)
W: no module named _sha512 (delayed, conditional import by hashlib)
W: no module named dbus.Bus (top-level import by dbus.dbus_bindings)
W: no module named msvcrt (conditional import by getpass)
W: no module named java (conditional import by xml.sax._exceptions)
W: no module named _sha256 (delayed, conditional import by hashlib)
W: no module named AES (delayed, conditional import by archive)
W: no module named _scproxy (conditional import by urllib)
W: no module named EasyDialogs (conditional import by getpass)
W: no module named org (top-level import by copy)
W: no module named _md5 (delayed, conditional import by hashlib)
W: no module named msvcrt (conditional import by subprocess)
W: no module named msvcrt (delayed import by getpass)
W: no module named xmlparse (top-level import by pyexpat)
W: no module named _xmlplus (top-level import by xml)
W: no module named _emx_link (conditional import by os)
W: no module named xmltok (top-level import by pyexpat)
W: no module named rourl2path (conditional import by urllib)
W: no module named _winreg (top-level import by mimetypes)
W: no module named SOCKS (top-level import by ftplib)
W: no module named _winreg (delayed import by urllib)
W: no module named nt (top-level import by ntpath)
W: __all__ is built strangely at line 0 - dummy_threading (/usr/lib/python2.7/dummy_threading.pyc)
W: delayed  exec statement detected at line 0 - bdb (/usr/lib/python2.7/bdb.pyc)
W: delayed  eval hack detected at line 0 - bdb (/usr/lib/python2.7/bdb.pyc)
W: delayed  eval hack detected at line 0 - bdb (/usr/lib/python2.7/bdb.pyc)
W: delayed  __import__ hack detected at line 0 - optparse (/usr/lib/python2.7/optparse.pyc)
W: delayed conditional __import__ hack detected at line 0 - doctest (/usr/lib/python2.7/doctest.pyc)
W: delayed  exec statement detected at line 0 - doctest (/usr/lib/python2.7/doctest.pyc)
W: delayed conditional __import__ hack detected at line 0 - doctest (/usr/lib/python2.7/doctest.pyc)
W: __all__ is built strangely at line 0 - dbus.exceptions (/usr/lib/python2.7/dist-packages/dbus/exceptions.pyc)
W: __all__ is built strangely at line 0 - tokenize (/usr/lib/python2.7/tokenize.pyc)
W: __all__ is built strangely at line 0 - tokenize (/usr/lib/python2.7/tokenize.pyc)
W: delayed  __import__ hack detected at line 0 - pickle (/usr/lib/python2.7/pickle.pyc)
W: delayed  __import__ hack detected at line 0 - pickle (/usr/lib/python2.7/pickle.pyc)
W: __all__ is built strangely at line 0 - dbus (/usr/lib/python2.7/dist-packages/dbus/__init__.pyc)
W: delayed  __import__ hack detected at line 0 - encodings (/usr/lib/python2.7/encodings/__init__.pyc)
W: __all__ is built strangely at line 0 - dis (/usr/lib/python2.7/dis.pyc)
W: __all__ is built strangely at line 0 - hashlib (/usr/lib/python2.7/hashlib.pyc)
W: delayed conditional eval hack detected at line 0 - warnings (/usr/lib/python2.7/warnings.pyc)
W: delayed conditional __import__ hack detected at line 0 - warnings (/usr/lib/python2.7/warnings.pyc)
W: __all__ is built strangely at line 0 - dbus.connection (/usr/lib/python2.7/dist-packages/dbus/connection.pyc)
W: delayed  __import__ hack detected at line 0 - email (/usr/lib/python2.7/email/__init__.pyc)
W: delayed  exec statement detected at line 0 - pdb (/usr/lib/python2.7/pdb.pyc)
W: delayed conditional eval hack detected at line 0 - pdb (/usr/lib/python2.7/pdb.pyc)
W: delayed  eval hack detected at line 0 - pdb (/usr/lib/python2.7/pdb.pyc)
W: delayed conditional eval hack detected at line 0 - pdb (/usr/lib/python2.7/pdb.pyc)
W: delayed  eval hack detected at line 0 - pdb (/usr/lib/python2.7/pdb.pyc)
W: delayed conditional exec statement detected at line 0 - iu (/usr/lib/pymodules/python2.7/pyinstaller-1.5.1/iu.pyc)
W: delayed conditional exec statement detected at line 0 - iu (/usr/lib/pymodules/python2.7/pyinstaller-1.5.1/iu.pyc)
W: __all__ is built strangely at line 0 - dbus.lowlevel (/usr/lib/python2.7/dist-packages/dbus/lowlevel.pyc)
W: __all__ is built strangely at line 0 - collections (/usr/lib/python2.7/collections.pyc)
W: delayed  exec statement detected at line 0 - collections (/usr/lib/python2.7/collections.pyc)
W: delayed conditional __import__ hack detected at line 0 - unittest.main (/usr/lib/python2.7/unittest/main.pyc)
W: delayed conditional __import__ hack detected at line 0 - unittest.loader (/usr/lib/python2.7/unittest/loader.pyc)
W: delayed conditional __import__ hack detected at line 0 - unittest.loader (/usr/lib/python2.7/unittest/loader.pyc)
W: delayed  __import__ hack detected at line 0 - unittest.loader (/usr/lib/python2.7/unittest/loader.pyc)
W: __all__ is built strangely at line 0 - __future__ (/usr/lib/python2.7/__future__.pyc)
W: __all__ is built strangely at line 0 - dbus._dbus (/usr/lib/python2.7/dist-packages/dbus/_dbus.pyc)
W: delayed  __import__ hack detected at line 0 - xml.sax (/usr/lib/python2.7/xml/sax/__init__.pyc)
W: delayed  eval hack detected at line 0 - gettext (/usr/lib/python2.7/gettext.pyc)
W: __all__ is built strangely at line 0 - dbus.types (/usr/lib/python2.7/dist-packages/dbus/types.pyc)
W: __all__ is built strangely at line 0 - dbus.bus (/usr/lib/python2.7/dist-packages/dbus/bus.pyc)
Komisch das Module drinstehen die ich garnicht importiere wie xml!

Edit:
@jerch
Ich habe das mal getestet:

Code: Alles auswählen

import sys
print sys.stdin.isatty()
was ist das überhaupt?
und es steht dummerweise auf False

ich verwende folgende Imports:

Code: Alles auswählen

    import os, sys, subprocess
    import time
    import getpass
    import dbus

Ich hoffe ihr könnt mir weiterhelfen!
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

Hmm... ich kann dir zwar mit deinem Problem nicht helfen, aber das ist ganz schön viel unnötiger Aufwand den du da betreibst, aber ich muss doch kurz die OT-Frage stellen:

Was spricht eigentlich dagegen einfach nur dein Programm auszuliefern?
Du hast weniger Zeitaufwand damit das irgendwie kurios zu paketieren, und der Anwender kann sein Programm in gewohnter Weise verwenden.
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Mir gefällt es halt so besser!

Und noch eine Frage,
das mit der --onefile funktioniert nicht,
ich habe lauter .so dateien in meinen Ordner.
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Seltsam, hatte nicht erwartet, dass sich das obige kleine Schnipsel mit isatty() bei Dir anders verhält als bei mir. Anscheinend nimmt Pyinstaller weitere Unterscheidungen vor, ich kenne es halt zu wenig, um dazu etwas sagen zu können.

Mit isatty() kannst Du ein Dateiobjekt darauf testen, ob es ein Terminal ist.
jtschoch hat geschrieben:Mir gefällt es halt so besser!
Prinzipiell gebe ich sparrow recht. Python ist im Linux/Unix-Bereich ziemlich verbreitet und Du kannst bei einer halbwegs modernen Distribution davon ausgehen, dass CPython 2.6+ vorinstalliert ist.
jtschoch hat geschrieben:das mit der --onefile funktioniert nicht,
ich habe lauter .so dateien in meinen Ordner.
Das Configure-Skript hast Du aber schon vorher laufen lassen? Vllt. solltest Du Pyinstaller nochmal frisch in der neuesten Version aufsetzen.
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@jtschoch: den 'normalen' Weg wie man so etwas unter Python macht kennst du aber schon? http://docs.python.org/library/distutils.html

Ich bin mir nicht ganz sicher wie gut du die Python-Welt (und die _nix-Welt) kennst.
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Ja, ich habe Pyinstaller gestern installiert,
und hatte alles Richtig gemacht und Configure.py ausgeführt.
(Neuste Version)

Aber trotz der Eingabe:

Makespec.py --onefile --onedir <skript>

Ich habe immernoch die ganzen *.so,*.so.1...Dateien
gibt es keine veränderrung!
Das ist Komisch!

Das SpecFile:

Code: Alles auswählen

# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support/_mountzlib.py'), os.path.join(HOMEPATH,'support/useUnicode.py'), '/home/jtschoch/Desktop/Zeitbegrennzungs-Tool/TimeLimiter/timelimiter'],
             pathex=['/usr/lib/pymodules/python2.7/pyinstaller-1.5.1'])
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          exclude_binaries=1,
          name=os.path.join('build/pyi.linux2/timelimiter', 'timelimiter'),
          debug=False,
          strip=False,
          upx=True,
          console=1 )
coll = COLLECT( exe,
               a.binaries,
               a.zipfiles,
               a.datas,
               strip=False,
               upx=True,
               name=os.path.join('dist', 'timelimiter'))
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Benutzeravatar
jtschoch
User
Beiträge: 400
Registriert: Freitag 6. Mai 2011, 15:40
Kontaktdaten:

Keine Antwort? :?: :cry:

Mit isatty() das war was anderes,
ich hatte nautilus uber die Konsole aufgerufen und mit doppel-klick die Datei aufgeführ(Konsole)
Aber das war der Fehler,
manuell mit pfadangabe funktionierts!
Meine Webseite http://www.develos.de
Forum: http://www.develos.de/forum
Mein Minecraft-Server: jonel.minecraft.to [dynmap(:8123)] | Webseite: http://jonel-minecraft.tk
Antworten