Improved example to just focus on sys.path manipulation.
This commit is contained in:
parent
f6bd2b6251
commit
3249f2d909
22
pep-0420.txt
22
pep-0420.txt
|
@ -372,9 +372,11 @@ portion::
|
|||
child
|
||||
three.py
|
||||
|
||||
We add the first two parent paths to ``sys.path``. The third
|
||||
``parent`` portion is added dynamically to ``parent.__path__``, and
|
||||
the third portion is then found when it is imported::
|
||||
We add ``project1`` and ``project2`` to ``sys.path``, then import
|
||||
``parent.child.one`` and ``parent.child.two``. Then we add the
|
||||
``project3`` to ``sys.path`` and when ``parent.child.three`` is
|
||||
imported, ``project3/parent`` is automatically added to
|
||||
``parent.__path__``.
|
||||
|
||||
# add the first two parent paths to sys.path
|
||||
>>> import sys
|
||||
|
@ -400,17 +402,21 @@ the third portion is then found when it is imported::
|
|||
File "<frozen importlib._bootstrap>", line 1250, in _find_and_load_unlocked
|
||||
ImportError: No module named 'parent.child.three'
|
||||
|
||||
# now add the third parent portion to parent.__path__:
|
||||
>>> parent.__path__.append('Lib/test/namespace_pkgs/project3/parent')
|
||||
>>> parent.__path__
|
||||
_NamespacePath(['Lib/test/namespace_pkgs/project1/parent', 'Lib/test/namespace_pkgs/project2/parent', 'Lib/test/namespace_pkgs/project3/parent'])
|
||||
# now add project3 to sys.path:
|
||||
>>> sys.path.append('Lib/test/namespace_pkgs/project3')
|
||||
|
||||
# and now parent.child.three can be imported:
|
||||
>>> import parent.child.three
|
||||
|
||||
# and project3/parent/child has dynamically been added to parent.child.__path__
|
||||
# project3/parent has been added to parent.__path__:
|
||||
>>> parent.__path__
|
||||
_NamespacePath(['Lib/test/namespace_pkgs/project1/parent', 'Lib/test/namespace_pkgs/project2/parent', 'Lib/test/namespace_pkgs/project3/parent'])
|
||||
|
||||
# and project3/parent/child has been added to parent.child.__path__
|
||||
>>> parent.child.__path__
|
||||
_NamespacePath(['Lib/test/namespace_pkgs/project1/parent/child', 'Lib/test/namespace_pkgs/project2/parent/child', 'Lib/test/namespace_pkgs/project3/parent/child'])
|
||||
>>>
|
||||
|
||||
|
||||
|
||||
Discussion
|
||||
|
|
Loading…
Reference in New Issue