From: Bruno S. <bms...@gm...> - 2004-06-18 09:15:44
|
Hi all, I've developped a small application in Python and, I'm trying to use py2exe to convert it into an executable. My application has a root directory where the main script is along with a few others. Then, when executed it loads all the ".py" or ".pyc" files stored in module "pool" from the root directory. The idea is that later on, other users can extend future files that will be used by the main application stored in the root directory. When converted into an executable, somehow I'm no longer able to load the .py files from module pool. I've tryed several ways, but with no success. Here is my setup.py configuration: # setup.py from distutils.core import setup import py2exe setup( version = "0.3.5", author="Bruno Santos ", author_email="bm...@gm...", # targets to build console = ["beefBuilder.py"], scripts = ["Node.py", "DataNode.py", "datanodegui.py", "gui.py" ], data_files=[("images", ["images/BeefBuilder.ico", "images/add-arrow.bmp", "images/add-node.bmp", "images/subtract.bmp", "images/struct-a-file.gif", "images/export.bmp", "images/new.bmp", "images/open.bmp", "images/save.bmp", "pool/classnode.py", "pool/switchnode.py"]) ], ) Any idea why? Regards, -- Bruno Santos mailto:bms...@gm... "Treat people as they ought to be, and you will help them become what they are capable of being." - Goethe Grupo GMV SA. --------------------------------------------------------------------- Isaac Newton, 11 - PTM - Tres Cantos - 28760 Madrid --------------------------------------------------------------------- Phone: 91-8072100 Ext:3362 Fax: 91-8072199 --------------------------------------------------------------------- http://www.gmv.com http://www.gmv.es http://www.gmvsistemas.com http://www.sgi.es --------------------------------------------------------------------- This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited. |
From: E. A. T. <e.a...@te...> - 2004-06-18 09:35:47
|
In Friday, June 18, 2004, 6:13:29 AM, Bruno wrote: BS> Hi all, BS> I've developped a small application in Python and, I'm trying to use BS> py2exe to convert it into an executable. BS> My application has a root directory where the main script is along with BS> a few others. Then, when executed it loads all the ".py" or ".pyc" BS> files stored in module "pool" from the root directory. The idea is that BS> later on, other users can extend future files that will be used by the BS> main application stored in the root directory. BS> When converted into an executable, somehow I'm no longer able to load BS> the .py files from module pool. I've tryed several ways, but with no BS> success. BS> Here is my setup.py configuration: BS> # setup.py BS> from distutils.core import setup BS> import py2exe BS> setup( BS> version = "0.3.5", BS> author="Bruno Santos ", BS> author_email="bm...@gm...", BS> # targets to build BS> console = ["beefBuilder.py"], BS> scripts = ["Node.py", BS> "DataNode.py", BS> "datanodegui.py", BS> "gui.py" ], BS> data_files=[("images", ["images/BeefBuilder.ico", BS> "images/add-arrow.bmp", BS> "images/add-node.bmp", BS> "images/subtract.bmp", BS> "images/struct-a-file.gif", BS> "images/export.bmp", BS> "images/new.bmp", BS> "images/open.bmp", BS> "images/save.bmp", BS> "pool/classnode.py", BS> "pool/switchnode.py"]) ], BS> ) BS> Any idea why? BS> Regards, I once needed this and I used glob to do the trick (via py2exe 0.4; I can't precise if that's still valid for the current version). Importing glob and changing your data_files to look something like this may help: # file setup.py [...] import glob [...] data_files=[("images", ["images/BeefBuilder.ico", "images/add-arrow.bmp", "images/add-node.bmp", "images/subtract.bmp", "images/struct-a-file.gif", "images/export.bmp", "images/new.bmp", "images/open.bmp", "images/save.bmp"]), ("pool", glob.glob("pool/*.py*"))] [...] -- tacao |
From: Bruno S. <bms...@gm...> - 2004-06-18 10:27:16
|
Hi Tacao, Thanks for your prompt answer, but unfortunatly is still not working. All the glob does is to easy the copy of ".py" or ".pyc" files into the subdirectory "pool". It fails when I try to import a .py file stored in the "pool" module dire= ctory. try: myModule =3D __import__("pool.classnode", globals(), locals(= ), ["getNodeInfo"]) except ImportError, aError: print aError So, I get a error message of : "No module named pool.classnode" This makes me beleive that it is something related in the way that py2exe= stores the module information. Therefore I'm still stucked with the same problem. The current setup.py look like this: # setup.py from distutils.core import setup import py2exe import glob includes =3D ["pool"] setup( version =3D "0.3.5", description =3D "Struct-A-File - Binary File Formatter", name =3D "Struct-A-File", author=3D"Bruno Santos ", author_email=3D"bm...@gm...", # targets to build console =3D ["beefBuilder.py"], scripts =3D ["Node.py", "DataNode.py", "datanodegui.py", "gui.py" ], data_files=3D[("images", ["images/BeefBuilder.ico", "images/add-arrow.bmp", "images/add-node.bmp", "images/subtract.bmp", "images/struct-a-file.gif", "images/export.bmp", "images/new.bmp", "images/open.bmp", "images/save.bmp"]), ("pool", glob.glob("pool/*.py")) ], ) Any further help will be appreciated. Regards, Para ti Tacao penso que posso dizer Muito Obrigado, visto tu pareces ser = Brasileiro e eu Portugues. :) Um abra=E7o. On Fri, 18 Jun 2004 06:42:41 -0300, E. A. Tacao <e.a...@te...> = wrote: > In Friday, June 18, 2004, 6:13:29 AM, Bruno wrote: > > BS> Hi all, > > BS> I've developped a small application in Python and, I'm trying to us= e > BS> py2exe to convert it into an executable. > > BS> My application has a root directory where the main script is along = with > BS> a few others. Then, when executed it loads all the ".py" or ".pyc" > BS> files stored in module "pool" from the root directory. The idea is = that > BS> later on, other users can extend future files that will be used by = the > BS> main application stored in the root directory. > > BS> When converted into an executable, somehow I'm no longer able to lo= ad > BS> the .py files from module pool. I've tryed several ways, but with n= o > BS> success. > > BS> Here is my setup.py configuration: > > BS> # setup.py > BS> from distutils.core import setup > BS> import py2exe > > BS> setup( > BS> version =3D "0.3.5", > BS> author=3D"Bruno Santos ", > BS> author_email=3D"bm...@gm...", > > BS> # targets to build > BS> console =3D ["beefBuilder.py"], > > BS> scripts =3D ["Node.py", > BS> "DataNode.py", > BS> "datanodegui.py", > BS> "gui.py" ], > > BS> data_files=3D[("images", ["images/BeefBuilder.ico", > BS> "images/add-arrow.bmp", > BS> "images/add-node.bmp", > BS> "images/subtract.bmp", > BS> "images/struct-a-file.gif", > BS> "images/export.bmp", > BS> "images/new.bmp", > BS> "images/open.bmp", > BS> "images/save.bmp", > BS> "pool/classnode.py", > BS> "pool/switchnode.py"]) ], > BS> ) > > > BS> Any idea why? > BS> Regards, > > I once needed this and I used glob to do the trick (via py2exe 0.4; I > can't precise if that's still valid for the current version). > Importing glob and changing your data_files to look something like > this may help: > > # file setup.py > [...] > import glob > [...] > data_files=3D[("images", > ["images/BeefBuilder.ico", > "images/add-arrow.bmp", > "images/add-node.bmp", > "images/subtract.bmp", > "images/struct-a-file.gif", > "images/export.bmp", > "images/new.bmp", > "images/open.bmp", > "images/save.bmp"]), > ("pool", glob.glob("pool/*.py*"))] > [...] > > > > -- tacao > > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by The 2004 JavaOne(SM) Conference > Learn from the experts at JavaOne(SM), Sun's Worldwide Java Developer > Conference, June 28 - July 1 at the Moscone Center in San Francisco, CA > REGISTER AND SAVE! http://java.sun.com/javaone/sf Priority Code NWMGYKN= D > _______________________________________________ > Py2exe-users mailing list > Py2...@li... > https://lists.sourceforge.net/lists/listinfo/py2exe-users > > --=20 Bruno Santos mailto:bms...@gm... "Treat people as they ought to be, and you will help them become what they are capable of being." - Goethe Grupo GMV SA. --------------------------------------------------------------------- Isaac Newton, 11 - PTM - Tres Cantos - 28760 Madrid --------------------------------------------------------------------- Phone: 91-8072100 Ext:3362 Fax: 91-8072199 --------------------------------------------------------------------- http://www.gmv.com http://www.gmv.es http://www.gmvsistemas.com http://www.sgi.es --------------------------------------------------------------------- This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited. |
From: Thomas H. <th...@py...> - 2004-06-18 11:24:12
|
"Bruno Santos" <bms...@gm...> writes: > Hi Tacao, > > Thanks for your prompt answer, but unfortunatly is still not working. > All the glob does is to easy the copy of ".py" or ".pyc" files into the > subdirectory "pool". > > It fails when I try to import a .py file stored in the "pool" module directory. > > try: > myModule = __import__("pool.classnode", globals(), locals(), ["getNodeInfo"]) > except ImportError, aError: > print aError > > So, I get a error message of : "No module named pool.classnode" > > This makes me beleive that it is something related in the way that py2exe stores > the module information. Therefore I'm still stucked with the same problem. I think it is because the *only* entry in sys.path is the library.zip file. See <http://starship.python.net/crew/theller/moin.cgi/Py2exeEnvironment> You should probably in your script check for the sys.frozen attribute, and extend sys.path yourself. Thomas |
From: Greg <gtc...@ea...> - 2004-08-24 17:40:42
|
Thomas Heller <theller <at> python.net> writes: > > I think it is because the *only* entry in sys.path is the library.zip > file. > > See <http://starship.python.net/crew/theller/moin.cgi/Py2exeEnvironment> > > You should probably in your script check for the sys.frozen attribute, > and extend sys.path yourself. > I think I'm dense, because I'm not having luck with this. I have a python application, which is laid out like: app.py dir\anotherdir\dynamic1.py dir\anotherdir\dynamic2.py dir\anotherdir\dynamic3.py dir\anotherdir\dynamic4.py dir\anotherdir\dynamic5.py At runtime, dynamic[1-5].py is dynamically loaded, based on application configuration. Obviously, the module finder is not finding these modules. When I look in the library.zip file, they are not being added. How can I force these modules to be included in library.zip? I manually added these files to the library.zip file, and it worked, but I'd much prefer an automated solution. What are my options here? I read the above link and played, but it does not appear to fixing my problem. Like I said, I must be dense, because I can't see that the above link is the solution. Please help! Thanks in advance, Greg |
From: Thomas H. <th...@py...> - 2004-08-26 12:28:22
|
Greg <gtc...@ea...> writes: > Thomas Heller <theller <at> python.net> writes: > >> >> I think it is because the *only* entry in sys.path is the library.zip >> file. >> >> See <http://starship.python.net/crew/theller/moin.cgi/Py2exeEnvironment> >> >> You should probably in your script check for the sys.frozen attribute, >> and extend sys.path yourself. >> > > I think I'm dense, because I'm not having luck with this. I have a python > application, which is laid out like: > > app.py > dir\anotherdir\dynamic1.py > dir\anotherdir\dynamic2.py > dir\anotherdir\dynamic3.py > dir\anotherdir\dynamic4.py > dir\anotherdir\dynamic5.py > > At runtime, dynamic[1-5].py is dynamically loaded, based on application > configuration. Obviously, the module finder is not finding these modules. When > I look in the library.zip file, they are not being added. How can I force these > modules to be included in library.zip? Is dir\anotherdir on sys.path when py2exe runs? If so, you only need to tell py2exe to include them, for example with the command line switch '--includes dynamic1,dynamic2,dynamic3,dynamic4,dynamic5'. If it is not on sys.path, you must either extend the path that modulefinder uses by extending it in your setup script, additionally to the above command line switch. > I manually added these files to the library.zip file, and it worked, > but I'd much prefer an automated solution. What are my options here? For additional fun (?), you could extend py2exe so that it adds the files to the library.zip file after the build process is done - see py2exe\samples\extending\setup.py how to do this. > I read the above link and played, but it does not appear to fixing my > problem. Like I said, I must be dense, because I can't see that the > above link is the solution. Probably I misunderstood your original question. Thomas |
From: Greg C. <gtc...@ea...> - 2004-08-30 15:59:49
|
Thanks very much. I'll try to check this out tomorrow. Greg On Thu, 2004-08-26 at 07:24, Thomas Heller wrote: > Greg <gtc...@ea...> writes: > > > Thomas Heller <theller <at> python.net> writes: > > > >> > >> I think it is because the *only* entry in sys.path is the library.zip > >> file. > >> > >> See <http://starship.python.net/crew/theller/moin.cgi/Py2exeEnvironment> > >> > >> You should probably in your script check for the sys.frozen attribute, > >> and extend sys.path yourself. > >> > > > > I think I'm dense, because I'm not having luck with this. I have a python > > application, which is laid out like: > > > > app.py > > dir\anotherdir\dynamic1.py > > dir\anotherdir\dynamic2.py > > dir\anotherdir\dynamic3.py > > dir\anotherdir\dynamic4.py > > dir\anotherdir\dynamic5.py > > > > At runtime, dynamic[1-5].py is dynamically loaded, based on application > > configuration. Obviously, the module finder is not finding these modules. When > > I look in the library.zip file, they are not being added. How can I force these > > modules to be included in library.zip? > > Is dir\anotherdir on sys.path when py2exe runs? If so, you only need to > tell py2exe to include them, for example with the command line switch > '--includes dynamic1,dynamic2,dynamic3,dynamic4,dynamic5'. > > If it is not on sys.path, you must either extend the path that > modulefinder uses by extending it in your setup script, additionally to > the above command line switch. > > > I manually added these files to the library.zip file, and it worked, > > but I'd much prefer an automated solution. What are my options here? > > For additional fun (?), you could extend py2exe so that it adds the files to > the library.zip file after the build process is done - see > py2exe\samples\extending\setup.py how to do this. > > > > I read the above link and played, but it does not appear to fixing my > > problem. Like I said, I must be dense, because I can't see that the > > above link is the solution. > > Probably I misunderstood your original question. > > Thomas -- Greg Copeland <gtc...@ea...> |
From: Greg <gtc...@ea...> - 2004-09-25 23:41:04
|
Thomas Heller <theller <at> python.net> writes: > I got sidetracked and am just now coming back to this. Sorry for the delay. Just the same, thanks for your help! > Is dir\anotherdir on sys.path when py2exe runs? If so, you only need to > tell py2exe to include them, for example with the command line switch > '--includes dynamic1,dynamic2,dynamic3,dynamic4,dynamic5'. Okay, this doesn't work. This simply copies it into the syspath, however, the application is expecting to find it in a specific location, thusly, it still fails. Changing the application is not an option. > > If it is not on sys.path, you must either extend the path that > modulefinder uses by extending it in your setup script, additionally to > the above command line switch. I did this. It is now including it into the Library.zip file, just not into the proper location. Accordingly, it fails to work at runtime. > > > I manually added these files to the library.zip file, and it worked, > > but I'd much prefer an automated solution. What are my options here? > > For additional fun (?), you could extend py2exe so that it adds the files to > the library.zip file after the build process is done - see > py2exe\samples\extending\setup.py how to do this. > Looks like this is my only option. What a pain. This is surprisingly frustrating as it appears to be a highly sought after option, and has it been implemented into py2exe proper, it seems like it would be down right painless. > Thomas Thanks for you assistance! You help has been much appreciated. Greg |
From: Michael F. <mi...@pc...> - 2004-09-30 14:35:45
|
I'm attempting to bundle a *really* simple console script using py2exe. I'm running on Windows XP SP2 with python 2.3.4 and py2exe version 0.5.2 Whilst I'm online I'm downloading py2exe 0.5.3 - but there's nothing in the changelog to make me think this is a known issue. Of course it could be my fault :-) If you look the traceback (with really helpful error message) occurs in 'patch_python_dll_winver' which makes me wonder if it something to do with the service pack 2 upgrade I've done (which I'm generally pleased with by the way). The script is very simple (only importing os and sys) and the setup.py is about the simplest possible (shown below the traceback). F:\Python Projects\modules in progress>setup.py py2exe running py2exe *** searching for required modules *** *** parsing results *** creating python loader for extension '_sre' *** finding dlls needed *** *** create binaries *** *** byte compile python files *** skipping byte-compilation of C:\Python23\lib\UserDict.py to UserDict.pyc skipping byte-compilation of C:\Python23\lib\atexit.py to atexit.pyc skipping byte-compilation of C:\Python23\lib\copy.py to copy.pyc skipping byte-compilation of C:\Python23\lib\copy_reg.py to copy_reg.pyc skipping byte-compilation of C:\Python23\lib\linecache.py to linecache.pyc skipping byte-compilation of C:\Python23\lib\macpath.py to macpath.pyc skipping byte-compilation of C:\Python23\lib\ntpath.py to ntpath.pyc skipping byte-compilation of C:\Python23\lib\os.py to os.pyc skipping byte-compilation of C:\Python23\lib\os2emxpath.py to os2emxpath.pyc skipping byte-compilation of C:\Python23\lib\popen2.py to popen2.pyc skipping byte-compilation of C:\Python23\lib\posixpath.py to posixpath.pyc skipping byte-compilation of C:\Python23\lib\re.py to re.pyc skipping byte-compilation of C:\Python23\lib\repr.py to repr.pyc skipping byte-compilation of C:\Python23\lib\sre.py to sre.pyc skipping byte-compilation of C:\Python23\lib\sre_compile.py to sre_compile.pyc skipping byte-compilation of C:\Python23\lib\sre_constants.py to sre_constants.pyc skipping byte-compilation of C:\Python23\lib\sre_parse.py to sre_parse.pyc skipping byte-compilation of C:\Python23\lib\stat.py to stat.pyc skipping byte-compilation of C:\Python23\lib\string.py to string.pyc skipping byte-compilation of C:\Python23\lib\types.py to types.pyc skipping byte-compilation of C:\Python23\lib\warnings.py to warnings.pyc byte-compiling F:\Python Projects\modules in progress\build\bdist.win32\winexe\temp\_sre.py to _sre.pyc *** copy extensions *** *** copy dlls *** Traceback (most recent call last): File "F:\Python Projects\modules in progress\setup.py", line 6, in ? setup(console=["aidan.py"]) File "C:\Python23\Lib\distutils\core.py", line 149, in setup dist.run_commands() File "C:\Python23\Lib\distutils\dist.py", line 907, in run_commands self.run_command(cmd) File "C:\Python23\Lib\distutils\dist.py", line 927, in run_command cmd_obj.run() File "C:\Python23\Lib\site-packages\py2exe\build_exe.py", line 167, in run self._run() File "C:\Python23\Lib\site-packages\py2exe\build_exe.py", line 211, in _run self.create_binaries(py_files, extensions, dlls) File "C:\Python23\Lib\site-packages\py2exe\build_exe.py", line 442, in create_binaries self.patch_python_dll_winver(os.path.join(self.exe_dir, python_dll)) File "C:\Python23\Lib\site-packages\py2exe\build_exe.py", line 685, in patch_python_dll_winver from py2exe.resources.StringTables import StringTable, RT_STRING File "C:\Python23\Lib\site-packages\py2exe\py2exe.py", line 3, in ? raise RuntimeError, "something's wrong" RuntimeError: something's wrong F:\Python Projects\modules in progress> setup.py script is : from distutils.core import setup import py2exe setup(console=["aidan.py"],) |
From: Thomas H. <th...@py...> - 2004-09-30 15:42:48
|
"Michael Foord" <mi...@pc...> writes: > If you look the traceback (with really helpful error message) occurs in > 'patch_python_dll_winver' which makes me wonder if it something to do with > the service pack 2 upgrade I've done (which I'm generally pleased with by > the way). ... > Traceback (most recent call last): ... > File "C:\Python23\Lib\site-packages\py2exe\py2exe.py", line 3, in ? > raise RuntimeError, "something's wrong" > RuntimeError: something's wrong There must not be a py2exe.py, neither .pyc, or .pyo file in the Lib\site-packages\py2exe\ directory. Please delete these files, and it should work. Easy to diagnose, since you posted a *complete* traceback. This file seems to be a leftover from earlier versions of py2exe. Removing the py2exe installation and reinstalling should fix it as well. Thomas |
From: Michael F. <mi...@pc...> - 2004-09-30 20:20:46
|
Thanks Thomas, I deleted the old installation and reinstalled 0.5.3. It works fine now. Many Thanks Fuzzyman Thomas Heller wrote: >"Michael Foord" <mi...@pc...> writes: > > > >>If you look the traceback (with really helpful error message) occurs in >>'patch_python_dll_winver' which makes me wonder if it something to do with >>the service pack 2 upgrade I've done (which I'm generally pleased with by >>the way). >> >> >... > > >>Traceback (most recent call last): >> >> >... > > >> File "C:\Python23\Lib\site-packages\py2exe\py2exe.py", line 3, in ? >> raise RuntimeError, "something's wrong" >>RuntimeError: something's wrong >> >> > >There must not be a py2exe.py, neither .pyc, or .pyo file in the >Lib\site-packages\py2exe\ directory. Please delete these files, and it >should work. Easy to diagnose, since you posted a *complete* traceback. > >This file seems to be a leftover from earlier versions of py2exe. >Removing the py2exe installation and reinstalling should fix it as well. > >Thomas > > > > > > |