I tried multiple things, first even if I install the package before running pylint it won't work except on one of my machines.

So I tried to narrow it down with setuptools :

Working with 0.9.8
Not working with 2.2 (ImportError)
Not working with 3.6 (ImportError)

I guess setuptools changed something concerning namespaces packages, bug or not this is another story. I'll keep looking.

Thanks a lot Sylvain


2014-05-16 15:01 GMT+02:00 Sylvain Thénault <sylvain.thenault@logilab.fr>:
On 16 mai 14:42, François Vanderkelen wrote:
> Hi Sylvain,
>
> First of all thanks for the quick answer. I tried to create a dummy project
> (the real one is confidential and not mine to give to the community) and it
> helped me narrow down my two issues.
>
> The ImportError: No module named project is linked to the relative import,
> and I could not reproduce the error in a dummy project. I finally found it,
> it has to do with my namespaces packages.
>
> What I mean by namespaces is in my python library I dispose of several
> packages like this :
>
> company.mongodb
> company.redis
> company.hbase
>
> And also :
>
> company.project.core
> company.project.app.dashboard
> company.project.app.security
>
> Where company and project are all the same things, this allows me and my
> team to easily identify each package and what it is supposed to do. We try
> to foster the open-source spirit in my company, hence the company top-level
> namespace. It is still internal but at least we share it across all teams :)
>
> Going back to the issue, if one package of the namespace is installed, then
> apparently pylint is looking directly inside the python path and can't find
> my package since it is not yet installed. I have the same issue with the
> "python setup.py develop" command, so I guess I am doing namespacing wrong,
> or it is not well defined in python ?
>
> The only thing I do is adding
> *_import__('pkg_resources').declare_namespace(__name__)
> *in the __init__.py of the namespace package.
>
> If I run pylint in another environment without any packages installed, it
> works like a charm (except I have a bunch of violations for missing
> imports).
>
> Do you want me to open an issue on bitbucket explaining all that or do you
> think I am doing something I am not supposed to do ?

I think what you're doing is right.

The crash has already been supported:
https://bitbucket.org/logilab/pylint/issue/203/importing-namespace-packages-crashes

It seems to me that the namespace package issue is related to recent version of
setuptools and has also been reported but can't find it right away.

--
Sylvain Thénault, LOGILAB, Paris (01.45.32.03.12) - Toulouse (05.62.17.16.42)
Formations Python, Debian, Méth. Agiles: http://www.logilab.fr/formations
Développement logiciel sur mesure:       http://www.logilab.fr/services
CubicWeb, the semantic web framework:    http://www.cubicweb.org