If I have a src directory setup like this:
main.py
pkg1:
__init__.py
util.py
pkg2:
__init__.py
test.py
Can you tell me the best way to import pkg1.util
from main.py
and from test.py
?
Thanks! (If I need to have another __init__.py
file in the root directory, let me know?)
In Python, you use the import keyword to make code in one module available in another. Imports in Python are important for structuring your code effectively. Using imports properly will make you more productive, allowing you to reuse code while keeping your projects maintainable.
There are generally three groups: standard library imports (Python's built-in modules) related third party imports (modules that are installed and do not belong to the current application) local application imports (modules that belong to the current application)
The Python import statement lets you import a module into your code. A module is a file that contains functions and values that you can reference from your program. The import statement syntax is: import modulename.
sys. path. Python imports work by searching the directories listed in sys. path .
Since you mention that this is Python 3, you do not have to add the following to your .py
files. I would still though because it helps backwards portability if some poor sod who's stuck on Python 2 needs to use your code:
from __future__ import absolute_import
Given that you are using Python 3, or that you're using Python 2 and have included the above line, here is your answer:
From main.py
:
import pkg1.util as util
from test.py
you would use one of two ways depending on whether you considered pkg1
and pkg2
to be things that would always deployed together in the same way in relation to each other, or whether they will instead always be each deployed semi-independently at the top level. If the first, you would do this:
from ..pkg1 import util
and if it's the second option, this:
import pkg1.util as util
This implies, of course, that you are always running Python from the directory in which main.py
is, or that that directory is in PYTHONPATH
or ends up in sys.path
for some reason (like being the main Python site-packages directory for example).
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With