This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: DistributionMetaData error ?
Type: Stage:
Components: Distutils Versions: Python 2.2
process
Status: closed Resolution:
Dependencies: Superseder:
Assigned To: theller Nosy List: dutoitc, nnorwitz, theller, varash
Priority: normal Keywords:

Created on 2003-03-23 10:52 by dutoitc, last changed 2022-04-10 16:07 by admin. This issue is now closed.

Messages (4)
msg15237 - (view) Author: Cédric Dutoit (dutoitc) Date: 2003-03-23 10:52
I'm trying to create an .exe from python files and got the 
following errors :

--------------------------------------------------------------------------------
L:\build\gimini\giminiV15-2-exe\src>c:\python22\python 
setup.py py2exe
Traceback (most recent call last):
  File "setup.py", line 8, in ?
    data_files=[   (   "img",
  File "C:\PYTHON22\distutils\core.py", line 101, in setup
    _setup_distribution = dist = klass(attrs)
  File "C:\PYTHON22\distutils\dist.py", line 130, in 
__init__
    setattr(self, method_name, getattr(self.metadata, 
method_name))
AttributeError: DistributionMetadata instance has no 
attribute 'get___doc__'
--------------------------------------------------------------------------------

C.Dutoit
msg15238 - (view) Author: Neal Norwitz (nnorwitz) * (Python committer) Date: 2003-03-23 15:40
Logged In: YES 
user_id=33168

Is this a bug in python or in py2exe?
msg15239 - (view) Author: Cédric Dutoit (dutoitc) Date: 2003-03-23 17:48
Logged In: YES 
user_id=64541

This seems to be a problem of version. I installed the latest 
version and it is ok.
msg86076 - (view) Author: Vah Rashim (varash) Date: 2009-04-17 15:29
I'm running py2exe on python 2.6 and have this error, too. I'm look 
through distutils/dist.py and read following:

self.metadata = DistributionMetadata()
method_basenames = dir(self.metadata) + \
                    ['fullname', 'contact', 'contact_email']

for basename in method_basenames:
    method_name = "get_" + basename
    setattr(self, method_name, getattr(self.metadata, method_name))

I'm printing dir(self.metadata) and get this lines:
['__doc__', '__init__', '__module__', 'author', 'author_email', 
'description', 'get_author', 'get_author_email', 'get_co
ntact', 'get_contact_email', 'get_description', 'get_fullname', 
'get_keywords', 'get_licence', 'get_long_description', '
get_maintainer', 'get_maintainer_email', 'get_name', 'get_platforms', 
'get_url', 'get_version', 'keywords', 'licence', '
long_description', 'maintainer', 'maintainer_email', 'name', 
'platforms', 'url', 'version', 'write_pkg_info']

code in dist.py trying add all methods from metadata to self, even 
'magic' and getters. I think, that's wrong, because no method like 
get___doc, get_get_contact and other.
I'm solve this problem by adding regexp for checking is this method 
allow for adding to self.

this is my (ugly, i think) code:
for basename in method_basenames:
    if re.match(r'(__|get_|write_)\w+', basename) is None: #MY FIXES!
        method_name = "get_" + basename
        setattr(self, method_name, getattr(self.metadata, method_name))

With this change, all py2exe works work correctly (and i don't try 
distutils in other cases).
P.S. i don't know, is this python or py2exe problem: maybe py2exe 
replcae nature python distutils module.
History
Date User Action Args
2022-04-10 16:07:51adminsetgithub: 38204
2009-04-17 15:29:42varashsetnosy: + varash
messages: + msg86076
2003-03-23 10:52:46dutoitccreate