AttributeError: 'module' object has no attribute 'letters'

B

black_13

what does this error mean?
i am trying to use mark hammonds win32 package.

Traceback (most recent call last):
File "aui2.py", line 11, in <module>
import win32com.client
File "C:\Python25\lib\site-packages\win32com\client\__init__.py",
line 12, in <module>
import dynamic, gencache, pythoncom
File "C:\Python25\Lib\site-packages\win32com\client\dynamic.py",
line 24, in <module>
import build
File "C:\Python25\lib\site-packages\win32com\client\build.py", line
507, in <module>
valid_identifier_chars = string.letters + string.digits + "_"
AttributeError: 'module' object has no attribute 'letters'

thanks
black_13
 
B

Ben Finney

black_13 said:
what does this error mean?
[...]
valid_identifier_chars = string.letters + string.digits + "_"
AttributeError: 'module' object has no attribute 'letters'

It means that you're trying to access the attribute 'letters' on a
module that doesn't have that attribute.

You need to find what the value of 'string' is at that point in the
code. If I had to guess, I would say the person who wrote the above
line was expecting 'string' to be bound to the Python standard library
module 'string'; but that the code you have binds that name to some
other module.
 
J

John Machin

what does this error mean?
i am trying to use mark hammonds win32 package.

Traceback (most recent call last):
File "aui2.py", line 11, in <module>
import win32com.client
File "C:\Python25\lib\site-packages\win32com\client\__init__.py",
line 12, in <module>
import dynamic, gencache, pythoncom
File "C:\Python25\Lib\site-packages\win32com\client\dynamic.py",
line 24, in <module>
import build
File "C:\Python25\lib\site-packages\win32com\client\build.py", line
507, in <module>
valid_identifier_chars = string.letters + string.digits + "_"
AttributeError: 'module' object has no attribute 'letters'

If you have a file called string.py in the same directory as your
script, move/rename/delete it.
Otherwise run python from the command line with the -v option and find
where it's getting the interloper string module from.
 
G

Gabriel Genellina

Otherwise run python from the command line with the -v option and find
where it's getting the interloper string module from.

interloper: my new word of the day. Thanks!

PS: Another way would be to run the script with python -i, and when it
halts, execute:

import string
print string.__file__
 
B

black_13

If you have a file called string.py in the same directory as your
script, move/rename/delete it.
Otherwise run python from the command line with the -v option and find
where it's getting the interloper string module from.- Hide quoted text -

- Show quoted text -

You were correct! I went back to my work machine and there it was. For
some
insane reason I had a py file string.py in the same directory as the
script
I was working on.
thanks
black_13
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,578
Members
45,052
Latest member
LucyCarper

Latest Threads

Top