# Python import syntax problem

This topic is 2848 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

## Recommended Posts

Hi there,

I am creating a package for fluid mechanics computation, and I want this to have very clear structure. Lets say:

FluidPackage
+--1D
---+Channels
------------+ChannelCrossSection.py
------------+Channel.py
---+Pipes
------------+Pipes.py
----+GroundWater
+--2D
---+Channels
---+Pipes
---+GroundWater
...
---+Warnings
------+MyWarnings.py
---+Errors
------+MyErrors.py

I want to create a common folders/modules for errors and warnings. How do I import them into all other files. For example:
 from MyWarnings ImportCnvergenceWarning 
I have read in Mark Lutz book that I can do it only if I have created the whole package, and imported it. Like:
 ..Errors.MyErrors import PyFluidWrongArgumentError 
is there any more flexible way? So that I could directly import Errors from f.ex. Pipes.py?
I dont want to put all those files in one folder because it would get a bit messy.

Regards
Misery

##### Share on other sites

Hi there,

I am creating a package for fluid mechanics computation, and I want this to have very clear structure. Lets say:

FluidPackage
+--1D
---+Channels
------------+ChannelCrossSection.py
------------+Channel.py
---+Pipes
------------+Pipes.py
----+GroundWater
+--2D
---+Channels
---+Pipes
---+GroundWater
...
---+Warnings
------+MyWarnings.py
---+Errors
------+MyErrors.py

I want to create a common folders/modules for errors and warnings. How do I import them into all other files. For example:
 from MyWarnings ImportCnvergenceWarning 
I have read in Mark Lutz book that I can do it only if I have created the whole package, and imported it. Like:
 ..Errors.MyErrors import PyFluidWrongArgumentError 
is there any more flexible way? So that I could directly import Errors from f.ex. Pipes.py?
I dont want to put all those files in one folder because it would get a bit messy.

Regards
Misery

For reference, I would read this: http://docs.python.org/tutorial/modules.html#packages

It seems like you're a bit confused, so I'll try to give you a clear and complete example to explain.

Your base package is FluidPackage.
This package (and all subpackages) must contain a file called __init__.py. This file can be blank.
So, to get started creating this structure, I whipped up this little command-by-command guide that you can follow: http://pastie.org/3087147 (Note: touch will of course not work if you're on Windows. touch just creates a blank file.)

Now, if you want to import your code from anywhere, you need to have the folder containing the base FluidPackage in your Python path.

As for importing, for example, MyErrors within FluidPackage/1D/Channels/Channels.py (or any other module), you would write this:
from FluidPackage.Errors import MyErrors
or
from FluidPackage.Errors.MyErrors import SomeErrorClass

This will work as long as your Python path is set properly. Does that help?

##### Share on other sites
Geee
Thanks very much thok.
That helped a lot!
Regards

• ### Game Developer Survey

We are looking for qualified game developers to participate in a 10-minute online survey. Qualified participants will be offered a \$15 incentive for your time and insights. Click here to start!

• 19
• 36
• 9
• 16
• 75