distutils question: different projects under same namespace

F. Petitjean littlejohn.75 at news.free.fr
Sun Apr 17 17:10:05 EDT 2005


Le 16 Apr 2005 01:20:34 -0700, Qiangning Hong a écrit :
> To avoid namespace confliction with other Python packages, I want all
> my projects to be put into a specific namespace, e.g. 'hongqn' package,
> so that I can use "from hongqn.proj1 import module1", "from
> hongqn.proj2.subpack1 import module2", etc.
That makes sense
> 
> These projects are developed and maintained and distributed seperately,
> so I should not make a whole 'hongqn' package with one setup.py.  I
> must write setup.py scripts for each project.  I meet a problem here.
> 
> For instance, I am writing setup.py script for proj1. I use the
> following parameters when calling distutils.core.setup:
> 
> setup(
>     ...
>     package_dir = {'hongqn.proj1': 'proj1'},
>     packages = ['hongqn.proj1'],
>     ...
> )
> 
> "python setup.py install" will create /usr/lib/python2.3/hongqn/proj1
> directory and copy proj1/*.py there.  But this is UNUSABLE!  There is
> NO __init__.py file under /usr/lib/python2.3/hongqn/ so that import
> hongqn.proj1 will fail!
You can detect if there is __init__.py in the hongqn directory.
> 
> I am considering manually create this __init__.py by hacking the
> install_lib command.  But before making my hands dirty,  I want to know
> if there is an "official" solution exists or others have already
> success stories on this matter.
It seems that this problem is tackled in the logilab packages : for
example, you install first the logilab common libraries and then pylint.
So the problem is to define the dependencies of your projects and hence
the order of installation.
> 
> As a note, I wish the solution can handle setup.py bdist and
> bdist_wininst well.
> 



More information about the Python-list mailing list