I have the following folder structure.
application ├── app │ └── folder │ └── file.py └── app2 └── some_folder └── some_file.py
I want to import some functions from file.py
in some_file.py
.
I've tried
from application.app.folder.file import func_name
and some other various attempts but so far I couldn't manage to import properly. How can I do this?
The most Pythonic way to import a module from another folder is to place an empty file named __init__.py into that folder and use the relative path with the dot notation. For example, a module in the parent folder would be imported with from .. import module .
Set up an import folderGo to Preferences > Import folders. Click Connect a folder to open a file picker window. Locate the folder you want to connect, and click Select.
Note: This answer was intended for a very specific question. For most programmers coming here from a search engine, this is not the answer you are looking for. Typically you would structure your files into packages (see other answers) instead of modifying the search path.
By default, you can't. When importing a file, Python only searches the directory that the entry-point script is running from and sys.path
which includes locations such as the package installation directory (it's actually a little more complex than this, but this covers most cases).
However, you can add to the Python path at runtime:
# some_file.py import sys # insert at 1, 0 is the script path (or '' in REPL) sys.path.insert(1, '/path/to/application/app/folder') import file
Nothing wrong with:
from application.app.folder.file import func_name
Just make sure folder
also contains an __init__.py
, this allows it to be included as a package. Not sure why the other answers talk about PYTHONPATH
.
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