Home > Article > Backend Development > Add custom modules in Python
Generally speaking, we will store the Python modules we write ourselves separately from the modules that come with python to facilitate maintenance. So how to add custom modules in Python?
Before answering this question, we must first clarify two points:
1. Strictly distinguish between packages and folders. The definition of a package is the folder containing __init__.py. If there is no __init__.py, then it is an ordinary folder.
2. Module import writing method, please note that only the package path is required, not the folder path.
The Python running environment traverses the sys.path list when looking for library files. If we want to register a new class library in the running environment, there are two main methods:
1. In sys.path Add new paths to the list.
2. Copy the library file to the directory in the sys.path list (such as the site-packages directory).
We can check sys.path by running the code
import sys print sys.path
Run result:
['/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old', '/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload', '/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/PyObjC', '/Library/Python/2.7/site-packages']
The first of these two methods is simpler and has less impact on the environment Minimum.
Let’s take a look at how to operate the first method:
Create a new pythontab.pth in the site-package folder of the python installation directory. The path of the site-package above is: /Library/Python/2.7 /site-packages, the content of the file is: the folder path where the package that needs to be imported is located.
In this way, when Python sees a .pth file while traversing the known library file directory, it will add the path recorded in the file to the sys.path setting, so that the package specified in the .pth file will also It can be successfully found by the Python running environment, and we can introduce custom modules just like using built-in modules.
If the default sys.path does not contain the path of its own module or package, we can also use the sys.path.apend method to dynamically add the package path.