Проверьте текущую виртуальную среду (venv) в Python

Чтобы проверить, какую виртуальную среду (venv) вы сейчас используете в Python, вы можете использовать несколько методов:

  1. Проверьте переменную среды VIRTUAL_ENV. В Python при активации виртуальной среды переменной среды VIRTUAL_ENVприсваивается путь к каталог виртуальной среды. Вы можете проверить его значение с помощью следующей команды:

    import os
    venv_path = os.environ.get('VIRTUAL_ENV')
    if venv_path:
       print("Currently using virtual environment:", venv_path)
    else:
       print("Not currently using a virtual environment.")
  2. Используйте модуль sys. Другой способ проверить виртуальную среду — использовать модуль sys. Вы можете получить доступ к атрибуту prefixмодуля sys, который предоставляет вам базовый каталог текущей запущенной установки Python. Если вы используете виртуальную среду, атрибут prefixбудет указывать на каталог виртуальной среды. Вот пример:

    import sys
    venv_path = sys.prefix
    if venv_path != sys.base_prefix:
       print("Currently using virtual environment:", venv_path)
    else:
       print("Not currently using a virtual environment.")
  3. Проверьте модуль site. Модуль siteв Python предоставляет информацию об активном в данный момент каталоге site-packages, что может помочь определить, находитесь ли вы в виртуальная среда. Вот пример:

    import site
    venv_path = site.getsitepackages()[0]
    if venv_path.endswith('site-packages'):
       print("Currently using virtual environment:", venv_path)
    else:
       print("Not currently using a virtual environment.")
  4. Проверьте атрибут sys.real_prefix: если вы используете виртуальную среду, модуль sysбудет иметь атрибут real_prefix, который содержит путь к базовой установке Python. Вы можете использовать этот атрибут, чтобы определить, находитесь ли вы в данный момент в виртуальной среде. Вот пример:

    import sys
    if hasattr(sys, 'real_prefix'):
       print("Currently using virtual environment:", sys.prefix)
    else:
       print("Not currently using a virtual environment.")