#python #pip #conda
#python #pip #conda
Вопрос:
Я сделал некоторые pip install
в своей conda
среде, и кажется, что оба conda
и pip
следуют соглашению python, устанавливая пакеты в site-packages
папку.
Когда я использую pip list
и conda list
, кажется, они вели хороший учет того, кто какие пакеты установил. Вопрос в том, где хранятся эти два списка установки в Linux?
Комментарии:
1. Возможно, следуйте исходному коду для списка pip .
2. какую ОС вы используете?
Ответ №1:
В случае pip list
, библиотека pkg_resources используется для доступа к файлам ресурсов для библиотек Python.
Для этого рабочий набор получает доступ к активным дистрибутивам. Из документов рабочий набор
представляет дистрибутивы, которые в настоящее время активны в sys.path.
Таким образом, при вызове экземпляра WorkingSet
по умолчанию он будет искать модули, расположенные на sys.path
.
Например, когда я запускаю sys.path
['/opt/conda/lib/python37.zip',
'/opt/conda/lib/python3.7',
'/opt/conda/lib/python3.7/lib-dynload',
'',
'/opt/conda/lib/python3.7/site-packages',
'/opt/conda/lib/python3.7/site-packages/IPython/extensions'
]
Это пути, которые будут использоваться для поиска установленных пакетов. Ниже приведен пример
import pkg_resources
# Define working set
working_set = pkg_resources.working_set
# Package, version and location
[d for d in working_set]
>>>
[zipp 3.1.0 (/opt/conda/lib/python3.7/site-packages),
zict 2.0.0 (/opt/conda/lib/python3.7/site-packages),
...,
attrs 19.3.0 (/opt/conda/lib/python3.7/site-packages),
async-generator 1.10 (/opt/conda/lib/python3.7/site-packages),
alembic 1.4.2 (/opt/conda/lib/python3.7/site-packages)]
Комментарии:
1. в дополнение к этому ответу я обнаружил, что в вышеупомянутых папках
pip list
ищет файл с именем likepackage_name.egg-info
сVersion
полем в нем ИЛИ папку с именем likepackage_name-x.y.z.dist-info
с именем файлаMETAFILE
в нем.2.
conda list
поиск законного.json
файла для каждого пакета в<CONDA_PREFIX>/conda-meta
папке