Importing Files from Subdirectories
Importing files from subdirectories can be a common challenge when organizing Python code. One may encounter an import error while attempting to access a file residing within a subdirectory. This article addresses the issue and provides a solution.
Scenario
Consider a project structure where a file called tester.py is located within a directory named /project. Within the /project directory is a subdirectory named lib, which contains a file called BoxTime.py. The objective is to import BoxTime from tester.py.
Failed Attempt
An attempt to import BoxTime using the following code results in an error:
import lib.BoxTime
This returns the following traceback:
Traceback (most recent call last): File "./tester.py", line 3, in <module> import lib.BoxTime ImportError: No module named lib.BoxTime
Solution
The solution lies in creating a special file named __init__.py within the lib subdirectory. This file is crucial for Python to recognize lib as a package, allowing the import of files from within the subdirectory. Once the __init__.py file is in place, files within the lib subdirectory can be imported using the following syntax:
import lib.BoxTime
Alternatively, to avoid referencing BoxTime as lib.BoxTime, you can use the following syntax:
import lib.BoxTime as BT ... BT.bt_function()
By creating the __init__.py file within the subdirectory, Python recognizes it as a package, facilitating the import of modules from the subdirectory.
The above is the detailed content of How to Import Files from Subdirectories in Python?. For more information, please follow other related articles on the PHP Chinese website!