From: Peter I. <pet...@gm...> - 2011-08-12 00:40:00
|
Hello, I am using elib.intl in my program but when I compile it with py2exe I am getiing error Traceback (most recent call last): File "sss.py", line 1539, in <module> File "sss.py", line 512, in __init__ File "elib\__init__.pyc", line 1, in <module> ImportError: No module named pkg_resources I found http://www.py2exe.org/index.cgi/ExeWithEggs but I don't know how to include pkg_resources to exe file generated with py2exe. How can I solve this problem? please help |
From: Dieter V. <di...@op...> - 2011-08-12 04:55:02
|
Quoting "Peter Irbizon" <pet...@gm...>: > Hello, I am using elib.intl in my > program but when I compile it with py2exe I am getiing error > Traceback (most recent call last): > File "sss.py", line 1539, in <module> > File "sss.py", line 512, in __init__ > File "elib\__init__.pyc", line 1, in <module> > ImportError: No module named pkg_resources I found > http://www.py2exe.org/index.cgi/ExeWithEggs[1] but I > don't know how to include pkg_resources to exe file generated with > py2exe. How can I solve this problem? please help You could replace elib\__init__.py with an empty file, but only if you are sure you have no other packages that use the elib namespace. mvg, Dieter ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. |
From: Dieter V. <di...@op...> - 2011-08-12 05:19:56
|
Quoting "Dieter Verfaillie" <di...@op...>: > Quoting "Peter Irbizon" <pet...@gm...>: >> Hello, I am using elib.intl in my >> program but when I compile it with py2exe I am getiing error >> Traceback (most recent call last): >> File "sss.py", line 1539, in <module> >> File "sss.py", line 512, in __init__ >> File "elib\__init__.pyc", line 1, in <module> >> ImportError: No module named pkg_resources I found >> http://www.py2exe.org/index.cgi/ExeWithEggs[1] but I >> don't know how to include pkg_resources to exe file generated with >> py2exe. How can I solve this problem? please help > > You could replace elib\__init__.py with an empty file, but only > if you are sure you have no other packages that use the elib > namespace. This may even be better, could you please try the following for elib\__init__.py: ''' import sys if not hasattr(sys, "frozen"): __import__('pkg_resources').declare_namespace(__name__) ''' Thanks, Dieter ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. |
From: Peter I. <pet...@gm...> - 2011-08-12 08:30:14
|
Hello Dieter, thank you for your solution with import sys if not hasattr(sys, "frozen"): .... it works. But what's more I found something interesting. elib.intl.install('gtk20', local_path) is not working - is not traslating gtk. elib.intl.install('gtk20', local_path) #THIS IS NOT WORKING elib.intl.install('translation', local_path) #this works ok for other strings in my app _ = elib.intl.install_module('translation', local_path)#this works ok for other strings in my app when I print local_path it is C:\app\locale\shares but when I change elib.intl.install('gtk20', local_path) to elib.intl.install('gtk20', 'C:/app/locale/shares') #please mind backslahes now it works for gtk as well. How is this possible that for gtk path in local_path vartiable is not working but for my other texts in my app it works? many thanks, Peter 2011/8/12 Dieter Verfaillie <di...@op...> > Quoting "Dieter Verfaillie" <di...@op...>: > >> Quoting "Peter Irbizon" <pet...@gm...>: >> >>> Hello, I am using elib.intl in my >>> program but when I compile it with py2exe I am getiing error >>> Traceback (most recent call last): >>> File "sss.py", line 1539, in <module> >>> File "sss.py", line 512, in __init__ >>> File "elib\__init__.pyc", line 1, in <module> >>> ImportError: No module named pkg_resources I found >>> http://www.py2exe.org/index.**cgi/ExeWithEggs[1]<http://www.py2exe.org/index.cgi/ExeWithEggs%5B1%5D>but I >>> don't know how to include pkg_resources to exe file generated with >>> py2exe. How can I solve this problem? please help >>> >> >> You could replace elib\__init__.py with an empty file, but only >> if you are sure you have no other packages that use the elib >> namespace. >> > > This may even be better, could you please try the following > for elib\__init__.py: > ''' > import sys > > > if not hasattr(sys, "frozen"): > __import__('pkg_resources').**declare_namespace(__name__) > ''' > > Thanks, > > Dieter > > > ------------------------------**------------------------------**---- > This message was sent using IMP, the Internet Messaging Program. > |
From: Dieter V. <di...@op...> - 2011-08-12 18:32:45
|
Quoting "Peter Irbizon" <pet...@gm...>: > Hello Dieter, thank you for your solution with > import sys > if not hasattr(sys, "frozen"): .... it works. Good! I'll add it to elib.intl soon. > But what's more I found something interesting. > elib.intl.install('gtk20', local_path) is not working - is not > traslating gtk. > elib.intl.install('gtk20', local_path) #THIS IS NOT WORKING No need to do that. GTK+ and other libraries already take care of initializing their gettext support themselves. > elib.intl.install('translation', local_path) #this works ok for > other strings in my app This is the function you'd use to install the _() function in the global namespace. It is intended to be used on an application level only and never inside a library. > _ = elib.intl.install_module('translation', local_path)#this works > ok for other strings in my app This is the function you'd use when writing a library. You'd store _() somewhere in your library's namespace and use it from the Python modules your library contains. It is wise to call *exactly one* of those functions: - *only a single time* for your library or application; - *before* you do anything else. When you call one of the install() functions when gtk, glib, gobject, atk, cairo, pango, etc are already imported it is too late and nothing can be done to force those C libraries to initialize their gettext support. > when I print local_path it is C:\app\locale\shares but when I change > elib.intl.install('gtk20', local_path) to > elib.intl.install('gtk20', 'C:/app/locale/shares') #please mind > backslahes now it works for gtk as well. How is this possible that > for gtk path in local_path vartiable is not working but for my other > texts in my app it works? I think you're seeing the results of calling one of the install() functions too late. See above... Also, I always use some form of: bindir = os.path.dirname(__file__) localedir = os.path.join(bindir, '..', 'share', 'locale') localedir = os.path.abspath(localedir) to make sure my executable is relocatable at runtime (ie it is not bound to be installed in some hardcoded path). You may need to adapt the bindir calculation when frozen, I seem to remember there was a need to do something special but my memory seems to fail me here... > many thanks, > Peter You're welcome, mvg, Dieter ---------------------------------------------------------------- This message was sent using IMP, the Internet Messaging Program. |
From: Peter I. <pet...@gm...> - 2011-08-13 13:37:19
|
> It is wise to call *exactly one* of those functions Thank you. I made some code modifications so I don't need to elib.intl.install for gtk20 now (the same for text below). > I think you're seeing the results of calling one of the install() functions too late. See above... Yes, you're right. Thank you for your great help again! Peter |