Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #58003

Re: Sharing common code between multiple scripts?

From Ben Finney <ben+python@benfinney.id.au>
Subject Re: Sharing common code between multiple scripts?
Date 2013-10-30 15:31 +1100
References <b14a6822-dab5-4688-a5aa-3a8afae40aa0@googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.1791.1383107520.18130.python-list@python.org> (permalink)

Show all headers | View raw


Victor Hooi <victorhooi@gmail.com> writes:

> NB - I'm the original poster here - https://groups.google.com/d/topic/[…]

That is not the correct URL to a discussion on this forum. The official
archives are at <URL:https://mail.python.org/pipermail/python-list/>, so
that's the correct place to look for a canonical URL to your message.

> I'd like to pull them out, and move them to a common module for all
> the scripts to import.

Great! This is modular programming, and is good practice.

> Originally, I thought I'd create a package, and have it all work:
>
> my_package
>     __init__.py
>     common/
>         my_functions.py

You should make ‘common/’ a package directory, by creating
‘common/__init__.py’.

>     script1/
>         __init__.py
>         config.yaml
>         script1.py
>     script2/
>         __init__.py
>         config.yaml
>         script2.py
>
> However, there apparently isn't an easy way to have script1.py and
> script2.py import from common/my_functions.py.

Once ‘common/’ is a package directory, you can::

    from ..common import my_functions

> So my new question is - what is the idiomatic way to structure this in
> Python, and easily share common functions between the scripts?

Put your modules into one or more packages.

Make sure each subdirectory of modules is a package.

Use explicit relative imports within your application.

Use absolute imports for shared libraries (ones shared between different
applications).

-- 
 \          “Any sufficiently advanced bug is indistinguishable from a |
  `\                                          feature.” —Rich Kulawiec |
_o__)                                                                  |
Ben Finney

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Sharing common code between multiple scripts? Victor Hooi <victorhooi@gmail.com> - 2013-10-29 20:58 -0700
  Re: Sharing common code between multiple scripts? Ben Finney <ben+python@benfinney.id.au> - 2013-10-30 15:31 +1100

csiph-web