Thanks to visit codestin.com
Credit goes to github.com

Skip to content

gh-94214: Add venv context.lib_path and document the context (GH-94221) #94221

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Jun 26, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 39 additions & 0 deletions Doc/library/venv.rst
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,45 @@ creation according to their needs, the :class:`EnvBuilder` class.
``clear=True``, contents of the environment directory will be cleared
and then all necessary subdirectories will be recreated.

The returned context object is a :class:`types.SimpleNamespace` with the
following attributes:

* ``env_dir`` - The location of the virtual environment. Used for
``__VENV_DIR__`` in activation scripts (see :meth:`install_scripts`).

* ``env_name`` - The name of the virtual environment. Used for
``__VENV_NAME__`` in activation scripts (see :meth:`install_scripts`).

* ``prompt`` - The prompt to be used by the activation scripts. Used for
``__VENV_PROMPT__`` in activation scripts (see :meth:`install_scripts`).

* ``executable`` - The underlying Python executable used by the virtual
environment. This takes into account the case where a virtual environment
is created from another virtual environment.

* ``inc_path`` - The include path for the virtual environment.

* ``lib_path`` - The purelib path for the virtual environment.

* ``bin_path`` - The script path for the virtual environment.

* ``bin_name`` - The name of the script path relative to the virtual
environment location. Used for ``__VENV_BIN_NAME__`` in activation
scripts (see :meth:`install_scripts`).

* ``env_exe`` - The name of the Python interpreter in the virtual
environment. Used for ``__VENV_PYTHON__`` in activation scripts
(see :meth:`install_scripts`).

* ``env_exec_cmd`` - The name of the Python interpreter, taking into
account filesystem redirections. This can be used to run Python in
the virtual environment.


.. versionchanged:: 3.12
The attribute ``lib_path`` was added to the context, and the context
object was documented.

.. versionchanged:: 3.11
The *venv*
:ref:`sysconfig installation scheme <installation_paths>`
Expand Down
1 change: 1 addition & 0 deletions Lib/venv/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ def create_if_needed(d):

context.inc_path = incpath
create_if_needed(incpath)
context.lib_path = libpath
create_if_needed(libpath)
# Issue 21197: create lib64 as a symlink to lib on 64-bit non-OS X POSIX
if ((sys.maxsize > 2**32) and (os.name == 'posix') and
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Document the ``context`` object used in the ``venv.EnvBuilder`` class, and add the new environment's library path to it.