2015-07-21 4 views
0

В чем разница между командой:Different список установленных пакетов поет «список пипа» и «pip.get_installed_distributions()»

$ pip list 

что я могу запустить в командной строке, а также:

import pip 
pip.get_installed_distributions() 

, который я запускаю в среде python.

Почему они возвращают другой список установленных пакетов?

+0

Он возвращает то же самое для меня. Вы уверены, что используете 'pip list' в том же env, из которого вы запускаете' python'? – davidism

+0

Что у вас есть $ PATH? –

+0

@davidism Я открываю терминал и запускаю 'pip list', я получаю длинный список. Затем я вхожу в среду 'python' в том же сеансе терминала и использую команду' pip.get_installed_distributions() ', и я получаю гораздо более короткий список. – Gabriel

ответ

1

Согласно определению pip.get_installed_distributions() от source code -

def get_installed_distributions(local_only=True, 
           skip=stdlib_pkgs, 
           include_editables=True, 
           editables_only=False, 
           user_only=False): 

Это выполняется с local_only набором в True по умолчанию, в то время как, когда вы делаете pip list, он покажет все пакеты местной, а также глобал, который что может случиться в вашем случае и заставило вас видеть гораздо больше установленных пакетов (как локально, так и глобально).

Попробуйте запустить pip list --local получить только локально установленные пакеты

или

pip.get_installed_distributions(local_only=False) 

, чтобы получить глобальные пакеты.

+0

Это возвращает * почти * тот же список, что и '$ pip list', только пакеты' pip' & 'setuptools' не перечислены с помощью' pip.get_installed_distributions (local_only = False) '. Любая идея почему? (Я принимаю ответ в любом случае, это просто дополнительный вопрос, который возник) – Gabriel

+0

Он отображает их для меня. Если вы хотите, вы можете попробовать перейти в пустой список к аргументу 'skip', чтобы проверить, является ли это то, что вызывая это. –

+0

Добавлена ​​команда 'skip = []', оба пакета перечислены (в дополнение к 'Python'). Благодаря! – Gabriel

Смежные вопросы