Jump to content
  • Advertisement
Sign in to follow this  
Misery

Python import syntax problem

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

If you intended to correct an error in the post then please contact us.

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.

Thanks for answers,
Regards
Misery

Share this post


Link to post
Share on other sites
Advertisement

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.

Thanks for answers,
Regards
Misery


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

To address your question more directly:
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 this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!