Я использую pipenv для создания виртуальной среды, и я пишу сценарий, который извлекает все установленные пакеты и помещает в словарь их имена и версии, точно так же, как список pip, если бы он был вызван из virutualenv:
> C:\Users\my_project > pipenv shell
>(.venv) C:\Users\my_project > pip list
Package Version
--------------- ---------
argcomplete 0.8.1
bottle 0.12.4
certifi 2020.6.20
colorama 0.4.3
cx-Oracle 7.3.0
cycler 0.10.0
...
os.system('pip list')
не работает, потому что в нем перечислены пакеты в глобальном окружении, а не в виртуальном окружении. - person Ahadu Tsegaye Abebe   schedule 02.10.2020import pkg_resources
installed_packages = {d.project_name: d.version for d in pkg_resources.working_set}
- person Ahadu Tsegaye Abebe   schedule 02.10.2020