Carter Temm wrote: > I’m writing a couple different projects at the moment, and when I compile > it into a single executable using pyinstaller, it becomes extremely large. > I’m guessing this is because of the modules used. Because I’m not that > skilled at python, I put stuff like for example, import sys. I imagine the > final project could be made smaller by specifying from something import > something_else. but the thing is, I don’t know what smaller I could import > with these set of modules. Is there a program that could tell me this.
I recommend to comment out all “import” statements (for later reference) and then use a Python editor like PyDev to generate step by step “from … import …” statements for all used symbols that are not yet defined. If it is a rather simple program where you can easily make no-ops out of modifying statements by defining mockups, you can just run it before you compile it to see where you get errors with commented-out “import” statements. In theory, you could look for code of the form “foo.bar” using the regular expression "(?:"")?(?:[^"\\]|\\"(?:"")?)+"(?:"")?|'(?:'')?(?:[^'\\]| \\'(?:'')?)+'(?:'')?)|((?:\w+\.)+)(\w+)¹. If $1 (e.g., “foo”) is not defined in the file, then it is likely that $2 (e.g., “bar”) is a symbol from module $1 and you could write #----------------- from $1 import $2 … $2 #----------------- instead of #----------------- import $1 … $1.$2 #----------------- But there can be false positives and duplicate symbols this way. _________ ¹ the first two alternatives exclude Python string literals -- PointedEars Twitter: @PointedEars2 Please do not cc me. / Bitte keine Kopien per E-Mail. -- https://mail.python.org/mailman/listinfo/python-list