[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Advice needed on howto take care about scikits.*



On Wed, 31 Mar 2010, Josselin Mouette wrote:
> Don’t they work correctly if you ship an empty __init__.py file instead?
I dunno what I did wrong originally but I was sure that it doesn't work
then... well -- I was wrong seems.  tested -- works just fine

> (I have no idea what declare_namespace does.)
allows modules under the same namespace be loaded from different paths.
here is a dummy bash script to demonstrate:

mkdir -p p1/{,n}s/m1 p2/{,n}s/m2

echo "Just modules -- plane __init__"
touch {p1/s{,/m1},p2/s{,/m2}}/__init__.py
PYTHONPATH=p1:p2 python -c 'import s.m1; print s.m1.__file__; import s.m2; print s.m2.__file__'

echo "Namespaces"
touch {p1/ns/m1,p2/ns/m2}/__init__.py
for d in p*/ns; do
	echo -e 'import pkg_resources\npkg_resources.declare_namespace(__name__)' > $d/__init__.py > $d/__init__.py
done
PYTHONPATH=p1:p2 python -c 'import ns.m1; print ns.m1.__file__; import ns.m2; print ns.m2.__file__'


should output smth like

Just modules -- plane __init__
/home/yoh/trash/pnamespaces/p1/s/m1/__init__.py
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ImportError: No module named m2
Namespaces
/home/yoh/trash/pnamespaces/p1/ns/m1/__init__.py
/home/yoh/trash/pnamespaces/p2/ns/m2/__init__.py


> If so, you can rely on python-support creating that file automatically.
yeap -- does it fine ;)  So I will proceed this way

-- 
                                  .-.
=------------------------------   /v\  ----------------------------=
Keep in touch                    // \\     (yoh@|www.)onerussian.com
Yaroslav Halchenko              /(   )\               ICQ#: 60653192
                   Linux User    ^^-^^    [175555]



Reply to: