Problem mit py2app ValueError: /libpython3.5.dylib' does not exist

Python und das Qt-Toolkit, erstellen von GUIs mittels des Qt-Designers.
Antworten
calis66
User
Beiträge: 9
Registriert: Dienstag 3. November 2015, 12:04

Hallo liebe Pythongemeinde,

leider bekomme ich beim packen meines Programms mit py2app folgende Fehlermeldung:

File "/Users/scc/.pyenv/versions/py3.5/lib/python3.5/site-packages/macholib/MachOGraph.py", line 81, in run_file
raise ValueError('%r does not exist' % (pathname,))
ValueError: '/Users/scc/.pyenv/versions/py3.5/lib/libpython3.5.dylib' does not exist


Mein System:
OSX mit Python 3.5 in pyenv virtualenv mit PyQT5
Programm läuft aus eclipse heraus wunderbar, aber beim verpacken gibt es leider Probleme.

Meine setup.py:

Code: Alles auswählen

from setuptools import setup

APP = ['logischeSchaltungen_App.py']
DATA_FILES = ['mainwindow.py', 'Controller.py', 'logischeSchaltungen_App.py', 'Model.py', 'AND_S1=0_S2=0.jpg', 'AND_S1=0_S2=1.jpg',         'AND_S1=1_S2=0.jpg' ,'AND_S1=1_S2=1.jpg' ,'FunctionAND.jpg' ,'FunctionID.jpg', 'FunctionNAND.jpg' ,'FunctionNOR.jpg' ,'FunctionNOT.jpg', 'FunctionOR.jpg' ,'ID_S1=0.jpg', 'ID_S1=1.jpg', 'NAND_S1=0_S2=0.jpg', 'NAND_S1=0_S2=1.jpg', 'NAND_S1=1_S2=0.jpg', 'NAND_S1=1_S2=1.jpg', 'NOR_S1=0_S2=0.jpg', 'NOR_S1=0_S2=1.jpg', 'NOR_S1=1_S2=0.jpg' ,'NOR_S1=1_S2=1.jpg', 'NOT_S1=0.jpg', 'NOT_S1=1.jpg' ,'OR_S1=0_S2=0.jpg', 'OR_S1=0_S2=1.jpg', 'OR_S1=1_S2=0.jpg', 'OR_S1=1_S2=1.jpg', 'pfeil.jpg' ,'SchaltSymbolAND.jpg', 'SchaltSymbolID.jpg', 'SchaltSymbolNAND.jpg', 'SchaltSymbolNOR.jpg','SchaltSymbolNOT.jpg','SchaltSymbolOR.jpg','srs.jpg','start.jpg', 'gatter.ico']
           
OPTIONS = {'argv_emulation': True,
 'iconfile': 'gatter.ico',
 'includes': ['sip', 'PyQt5',  'PyQt5._qt', 'PyQt5.QtWidgets.QWidget', 'QtWidgets.QWidget', 'PyQt5.QtGui.QPixmap']}

setup(
app=APP,
data_files=DATA_FILES,
options={'py2app': OPTIONS},
setup_requires=['py2app']
)
Weiß jemand, wie man diesen Fehler beheben kann?

Vielen Dank und liebe Grüße,
Chris
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Schon mal einfach die Fehlermeldung nachverfolgt & geschaut, ob die Datei, die da angemaekelt wird, wirklich nicht existiert?
calis66
User
Beiträge: 9
Registriert: Dienstag 3. November 2015, 12:04

Hallo und danke für die schnelle Antwort.

Ja hab ich - Datei existiert nicht... Sie ist nicht auf dem Rechner - auch nicht als versteckte Datei

Lg,
Chris
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das bezweifele ich doch sehr. Ich habe kein Python 3.5, sondern "nur" 3.4 auf meinem Mac - und da befindet sie sich mindestens mal unter "/Library/Frameworks/Python.framework/Versions/3.4/lib/". Das wird bei dir nicht anders sein.

Ich persoenlich habe mit py2app, PyObjc und auch PyQt immer eher den Ansatz verfolgt, die nicht per virtualenv zu installieren, sondern in den Interpreter direkt - es ist zu lange her, als das ich das besser begruenden kann, aber die summierte Erfahrung spricht irgendwie gegen venv's :) Und bei solchen "dicken" Abhaengigkeiten, bei denen man ja zB auch ein Qt irgendwo rumliegen haben muss etc. das eh genau eine Version hat, ist das in meinen Augen auch verschmerzbar. Allerdings solltest du das nur bei einem nicht-system-Python machen. Was 3.5 aber glaube ich nicht ist, oder?
calis66
User
Beiträge: 9
Registriert: Dienstag 3. November 2015, 12:04

Habe nochmal nachgesehen und eine systemweite Suche durchlaufen lassen - die Datei gibts definitiv nicht ;(

Hatte mit pyenv und virtualenv bisher immer gute Erfahrungen gemacht.
Da ich mit django, pyqt sowie kivy immer getrennt arbeite wollte ich mein System nicht zumüllen und alles sauber getrennt haben.
Bei diesem Projekt stoß ich allerdings ständig auf Abhängigkeitsprobleme.. verbringe schon drei Tage damit, das fertige Projekt zu "verpacken"... Immer wieder was anderes.. :K

Bin mir nicht ganz sicher, ob ich die 'includes' in der setup.py richtig gesetzt habe... :K

LG,
Chris
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Also das ist schon sehr merkwuerdig. Allerdings kann es natuerlich sein, dass das bundling des Python-Interpreters sich zwischen 3.4 und 3.5 geaendert hat. Py2App ist da ggf. nicht auf Stand.

Vielleicht mal probieren 3.4 zu nehmen?
calis66
User
Beiträge: 9
Registriert: Dienstag 3. November 2015, 12:04

Mhm- da hatte ich auch schon dran gedacht - müsste ich allerdings pyqt nochmals installieren und das sind 1.72 GB bei ner 2k Leitung...
Aber du hast recht- ich denk da komm ich wahrscheinlich nicht drum rum :(
Und diesmal lass ich pyenv außen vor und geh direkt ins System - um auch diese Fehlerquelle auszuschließen.

Muss ganz ehrlich sagen- so bequem und kurz! man mit Python coden kann -so umständlich ist es, das fertige Programm zu "verpacken"...
Ist in C, C++ oder Java viel leichter möglich.
Dennoch - Python hat was, das Java und C/C++ fehlt :D

Ich hoffe da tut sich noch was in dieser Richtung.. Kennst du evtl. ne Alternative zu py2app bzw. py2exe?

LG
Chris
__deets__
User
Beiträge: 14540
Registriert: Mittwoch 14. Oktober 2015, 14:29

Nein, gibt es AFAIK nicht. Und ja, manchmal nervt das bundling gehoerig - aber wenn es einmal laeuft, dann klappt's fuer mich ganz gut.

Und als jemand, der beruflich mit C++ arbeitet: die Menge an Frautagen, die in unser Build-System geflossen sind, ist locker 3stellig. Zumindest cross-plattform hat man da auch viele Schmerzen. Klar, wenn man "einfach" die VS oder Xcode Templates benutzen kann, dann ist man fein raus.

Aber das holst du alles wieder rein beim nicht-ueber-den-Compiler-aergern ;)
calis66
User
Beiträge: 9
Registriert: Dienstag 3. November 2015, 12:04

Oh ja - hatte ich auch einmal bei ner etwas größeren Geschichte während des Studiums Brrr... (allein wär ich da aufgeschmissen gewesen)
Die kleineren Sachen ließen sich immer ganz gut lösen - aber das hatte ich gekonnt verdrängt hahaha

Fällt dir an meiner setup.py irgendein Fehler auf? (Die Bilder müsste man auch irgendwie [*.jpg] zusammenfassen können denke ich)

Ich probiers jetzt mal mit der 3.4er Version - muss aber warten bis der Download fertig ist - und das kann leider dauern.
DANK dir vielmals :D

LG
Chris
Antworten