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>:
Hi Sylvain,
First of all thanks for the quick answer. I tried to create a dummy
(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
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,
On 16 mai 14:42, François Vanderkelen wrote: project try 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-...
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