This is a simple question about actual practice.
I just want to know how you (yes you) are
approaching this problem.
What is the recommended packaging of
demo scripts or test scripts for a package
to be distributed to others to "play with".
(I.e., without "installing".)
Suppose I have the package structure:
moduleXX uses a relative import to access moduleYY.
I have a script test.py that I want to
distribute with the package. This script will import
moduleXX to illustrate or test the module's use.
Is it the case that this script cannot reasonably be
bundled with `package`? (I.e., within its directory
If I put it in the `subpackage1` directory and
just import moduleXX, I will get
ValueError: Attempted relative import in non-package
If I put it in the `package` directory and
import subpackage1.moduleXX, I will get
ValueError: Attempted relative import beyond toplevel package
Here is one hack, based on a suggestion of Alex Martelli
- add a `scripts` subdirectory to `package`
- use path manipulation to find the directory holding `package`
- insert this directory in sys.path
This hack "works".
However it has also been claimed that this approach is an
insane for any shared code. Is it? If so, what is best practice?
I do not want to assume the package will be installed:
a user should be able to play with it without installing it.
This is a repeat question. The usual rule is, if you do not get an answer, you
are asking the question in an unhelpful way. If my question is still unclear, I
would appreciate any leads on how to clarify it.