import module: include a module in the search path. Everything in the module can be accessed by the name
import, renaming is made possible by
as clause. Without
as clause, the module is accessed by the whole module name; otherwise it is accessed by the name provided with
as clause. For example, in
import os, the
os module is used with the name
import xml.etree.ElementTree as etree
the module is accessed with the name
You can import a part of a module (functions, classes) by
from urllib.parse import urlencode
urllib.parse.urlencode can be accessed by
__name__: if imported, it’s the module’s filename, without a directory path and extension. If it is run as a standalone program, it is
'__main__'. We can enclose test code for the module with
if __name__ == '__main__':.
__import__(name) takes a name of a module and returns an object of that module.
A module can be a single Python file (in this case, module name is the file name), or a directory with an
__init__.py (in this case, module name is the directory name). When Python sees an
__init__.py in a directory, a multi-file module is created, and files within the directory can reference other files by relative import.
from . import othermodule
.. syntax on the import statement might look funny, but think of it as specifying a directory name.
. means look in the current directory and
..B means look in the
../B directory. This syntax only works with the
from form of import.
__init__.py can contain nothing, some functions, or all functions. Mainly it is used as entry point of the module. If a module is spitted into multiple files but you want it to be a single coherent module, import everything from different files in the
To unify separate directories under a common namespace, you organize the code just like a normal Python package, but you omit
__init__.py files in the directories where the components are going to join together. To illustrate, suppose you have two different directories of Python code like this:
In these directories, the name spam is being used as a common namespace. Observe that there is no init.py file in either directory. This feature is known as “namespace package”.
Python Package Index
Python 3 comes with a packaging framework: Distutils.
Structure of a Distutils package is like this:
setup.py carries information about the package that Distutils uses.
README.txt should be Windows-compatile and contains introduction about the package. Use the following command to check
python3 setup.py check
Many things can be done (packaging, publishing, etc.) by running
setup.py with different parameters.
To include additional files such as documentations, a manifest file called
MANIFEST.in should be placed in the root directory.