problem with packages and path
Paul Boddie
paul at boddie.org.uk
Wed Aug 27 13:00:34 EDT 2008
On 27 Aug, 18:44, Daniel <daniel.watr... at gmail.com> wrote:
>
> I'm writing some unit tests for my python software which uses
> packages. Here is the basic structure:
>
> mypackage
[...]
> unittests
> __init__.py
> alltests.py
> test1.py
> test2.py
>
> within alltests.py I would expect to be able to "import
> mypackage.unittests.test1". In fact within PyScripter this works as
> expected. However, when I execute the code from the command line, I
> get the following error:
>
> ImportError: No module named mypackage.unittests.test1
One thing to note: if you are running alltests.py directly (which you
don't mention explicitly) then even if you do so from the directory
containing the root of the package hierarchy (mypackage), it will be
the directory containing alltests.py (unittests) which will appear on
the PYTHONPATH/sys.path. Sometimes it's easy to take this behaviour
for granted when running programs.
A question: what happens if you prepend the directory containing the
root of package hierarchy to sys.path using insert (at element 0)
rather than append?
Paul
More information about the Python-list
mailing list