I’m having a hard time understanding how module importing works in Python (I’ve never done it in any other language before either).
Let’s say I have:
myapp/__init__.py
myapp/myapp/myapp.py
myapp/myapp/SomeObject.py
myapp/tests/TestCase.py
Now I’m trying to get something like this:
myapp.py
===================
from myapp import SomeObject
# stuff ...
TestCase.py
===================
from myapp import SomeObject
# some tests on SomeObject
However, I’m definitely doing something wrong as Python can’t see that myapp is a module:
ImportError: No module named myapp
In your particular case it looks like you’re trying to import
SomeObjectfrom the myapp.py and TestCase.py scripts. From myapp.py, dosince it is in the same folder. For TestCase.py, do
However, this will work only if you are importing TestCase from the package. If you want to directly run
python TestCase.py, you would have to mess with your path. This can be done within Python:though that is generally not recommended.
In general, if you want other people to use your Python package, you should use distutils to create a setup script. That way, anyone can install your package easily using a command like
python setup.py installand it will be available everywhere on their machine. If you’re serious about the package, you could even add it to the Python Package Index, PyPI.