Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!feeder1.news.weretis.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed3.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'subject:modules': 0.09; 'python': 0.11; '__init__.py': 0.16; 'code?': 0.16; 'pulling': 0.16; 'received:80.91.229.3': 0.16; 'received:dip0.t-ipconnect.de': 0.16; 'received:plane.gmane.org': 0.16; 'received:t-ipconnect.de': 0.16; 'subdirectory': 0.16; 'sys.path': 0.16; 'wrappers': 0.16; 'wrote:': 0.18; 'import': 0.22; 'saying': 0.22; 'install': 0.23; 'header:User-Agent:1': 0.23; 'module,': 0.24; 'package.': 0.24; 'please?': 0.24; 'script': 0.25; 'this:': 0.26; 'subject:/': 0.26; 'header:X-Complaints-To:1': 0.27; 'tried': 0.27; 'context.': 0.31; 'invoke': 0.31; 'know.': 0.32; 'actual': 0.34; 'subject:from': 0.34; 'could': 0.34; 'common': 0.35; 'something': 0.35; 'add': 0.35; 'installing': 0.36; 'right?': 0.36; 'subject:?': 0.36; 'to:addr:python-list': 0.38; 'explain': 0.39; "couldn't": 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; "you're": 0.61; 'term': 0.63; 'within': 0.65; 'package?': 0.84; 'victor': 0.84 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Peter Otten <__peter__@web.de> Subject: Re: Organising packages/modules - importing functions from a common.py in a separate directory? Date: Wed, 30 Oct 2013 10:48:28 +0100 Organization: None References: <9283f879-b872-43af-a072-0dff088421d8@googlegroups.com> <7497d2bc-a42c-498b-9167-d86165401db8@googlegroups.com> <306e0965-cc83-43e0-bfa1-cd9761bcbfff@googlegroups.com> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Gmane-NNTP-Posting-Host: p50848748.dip0.t-ipconnect.de User-Agent: KNode/4.7.3 X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 48 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1383126486 news.xs4all.nl 16009 [2001:888:2000:d::a6]:38355 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:58015 Victor Hooi wrote: > Wait - err, subpackage != module, right? Do you think you could explain > what a sub-package is please? I tried Googling, and couldn't seem to find > the term in this context. In analogy to subdirectory I em_load and pg_load -- and common if you add an __init__.py would be sub-packages, provided only the parent of foo_loading is in sys.path and you import them with import foo_loading.pg_load etc. > Also, so you're saying to put the actual script that I want to invoke > *outside* the Python package. > > Do you mean something like this: > >> sync_em.py >> sync_pg.py >> foo_loading/ >> __init__.py >> common/ __init__.py >> common_foo.py >> em_load/ >> __init__.py >> config.yaml >> em.py >> pg_load/ >> __init__.py >> config.yaml >> pg.py > > and the sync_em.py and sync_pg.py would just be thin wrappers pulling in > things from em.py and pg.py? Is that a recommended approach to organise > the code? I don't know. I prefer it that way. > Would it make any difference if I actually packaged it up so you could > install it in site-packages? Could I then call modules from other modules > within the package? If you mean "import", yes, installing is one way to get it into sys.path.