Python: package root, root-node, __init__.py in the package root

Veek M vek.m1234 at gmail.com
Thu Nov 13 08:03:27 CET 2014


I have a package structured like so on the file system:
PKG LIBS are stored here: /usr/lib/python3.2/
Pkg-name: foo-1.0.0

1. What is the root directory, or root-node or 'root' of my package? My 
understanding is that it's: /usr/lib/python3.2/foo-1.0.0/ on the file-system 
and this is referred to the root of the pkg.

2. Can, foo-1.0.0 contain __init__.py or do i have to do:
foo-1.0.0/foo/__init__.py ?


Take a look at what this guy is saying on his blog:
http://blog.habnab.it/blog/2013/07/21/python-packages-and-you/

-------------------
(bottom of the page)
"Your project root should contain a python package, not be a package itself. 
If you do this, your setup.py will be very confusing (or not work at all) 
and it will be very difficult to run your code."

(top of the page)
passacre/__init__.py
passacre/__main__.py

3. Could someone elucidate, explain what it is he's talking about?
-----------------------------
Don?t directly run modules inside packages

"What I mean specifically is doing python passacre/__main__.py, or python 
passacre/test/test_application.py, or anything else that starts with python 
passacre/. This will prevent python from knowing where the root of your 
package is, and so absolute imports and explicit relative imports will fail, 
or not import the code you think it should be importing."

4. In this particular case, how does the interpreter determine pkg-root?




More information about the Python-list mailing list