AttributeError: module object has no attribute
Nikhil
mnikhil at gmail.com
Tue May 20 14:21:06 EDT 2008
Marc 'BlackJack' Rintsch wrote:
> On Tue, 20 May 2008 23:31:15 +0530, Nikhil wrote:
>
>> Peter Otten wrote:
>>> Nikhil wrote:
>>>
>>>> I have recently written a small module. When I import the module, I
>>>> always get the error
>>>>
>>>>
>>>> only when I do
>>>>
>>>> >>> from local.my.module import *
>>>>
>>>> --
>>>> Traceback (most recent call last):
>>>> File "<stdin>", line 1, in <module>
>>>> AttributeError: 'module' object has no attribute '/xyz/py/file'
>>>> ---
>>>>
>>>>
>>>> but when I do the below, I do not get any error.
>>>>
>>>> --
>>>> >> import local.my.module
>>>> >>
>>>> --
>>>>
>>>> Any ideas on what could be wrong?
>>> Are you abusing the __all__ attribute?
>>>
>>> $ cat tmp.py
>>> __all__ = ['/xyz/py/file']
>>>
>>> $ python -c "from tmp import *"
>>> Traceback (most recent call last):
>>> File "<string>", line 1, in <module>
>>> AttributeError: 'module' object has no attribute '/xyz/py/file'
>>>
>> Yes, I am. Is there any reason not to?
>
> That your module raises the `AttributeError` and is broke is not reason
> enough!? :-)
>
>> basically, since this is implemented in the module, I have to export it
>> since the caller to the function in the module is responsible for
>> ensuring he has enough proper permissions to read the file.
>
> What do you mean by "implemented in the module"? `__all__` is for names
> that live in the module's namespace -- '/xyz/py/file' isn't even a legal
> identifier name in Python!
>
> Ciao,
> Marc 'BlackJack' Rintsch.
Okay.. thanks :-)
I removed the entry from __all__, and I earlier assumed the module to
break, but it did not. Thanks again :-)
More information about the Python-list
mailing list