Commits

ericvsmith  committed 4032557 Draft

Improved example to just focus on sys.path manipulation.

  • Participants
  • Parent commits 5e1662a

Comments (0)

Files changed (1)

File pep-0420.txt

                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
       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