Modulefinder
Modul, welches verwendet wird, um Abhängigkeiten zu bestimmen, wird "verwirrt" und t Winks brauchst du Tkinter
.
Wenn Sie folgende Skript ausführen ...
from modulefinder import ModuleFinder
finder = ModuleFinder()
finder.run_script('test.py')
print finder.report()
... Sie werden gefunden Module sehen (verkürzt):
Name File
---- ----
m BaseHTTPServer C:\Python27\lib\BaseHTTPServer.py
m ConfigParser C:\Python27\lib\ConfigParser.py
m FixTk C:\Python27\lib\lib-tk\FixTk.py
m SocketServer C:\Python27\lib\SocketServer.py
m StringIO C:\Python27\lib\StringIO.py
m Tkconstants C:\Python27\lib\lib-tk\Tkconstants.py
m Tkinter C:\Python27\lib\lib-tk\Tkinter.py
m UserDict C:\Python27\lib\UserDict.py
m _LWPCookieJar C:\Python27\lib\_LWPCookieJar.py
...
So, jetzt wissen wir, dass Tkinter
importiert wird, aber es ist nicht sehr nützlich. Der Bericht zeigt nicht, was das beanstandete Modul ist. Allerdings ist es genug Informationen Tkinter
durch Modifizieren py2exe Skript auszuschließen:
from distutils.core import setup
import py2exe
setup(script_args = ['py2exe'],
windows=[{'script':'test.py'}],
options = {'py2exe': {'compressed':1,
'bundle_files': 1,
'excludes': ['Tkconstants', 'Tkinter']
},
},
zipfile = None)
Gewöhnlich das ist genug. Wenn Sie immer noch neugierig sind, welche Module die Schuldigen sind, ist ModuleFinder
nicht sehr hilfreich. Aber Sie können modulegraph
und seine Abhängigkeit altgraph
installieren. Dann können Sie das folgende Skript ausführen und die Ausgabe in eine HTML-Datei umleiten:
import modulegraph.modulegraph
m = modulegraph.modulegraph.ModuleGraph()
m.run_script("test.py")
m.create_xref()
Sie Abhängigkeitsdiagramm, wo Sie das finden:
numpy -> numpy.lib -> numpy.lib.utils -> pydoc -> Tkinter
Danke für Antwort. Allgemeiner: Denkst du, dass es möglich ist, den 'tcl /' Ordner zu umgehen, wenn du 'py2exe' verwendest? – Basj
Ich bin mir nicht sicher, da ich 'cx_freeze' und nicht' py2exe' verwende, das nicht die Option "bundle to one exe" hat. Theoretisch sollten Sie alle Dateien packen können, sogar '/ tcl' Verzeichnis, das von' Tkinter' in der exe benötigt wird. – Fenikso
Es sollte 'bundle_files' Option für' py2exe' verfügbar sein. Kann dafür hilfreich sein. – Fenikso