Как определить, установлены ли Python setuptools?
Я пишу быстрые оболочки script, чтобы некоторые из наших разработчиков могли запускать Fabric. (Я также новичок в Python.) Часть установки Fabric устанавливает pip, а часть установки pip устанавливает setuptools.
Есть ли простой способ определить, установлено ли setuptools? Я хотел бы сделать несколько раз script, и он пропустит все, что уже сделано. Теперь, если вы дважды запускаете ez_setup.py, вы получите отказ во второй раз.
Одна из моих идей заключалась в том, чтобы искать сценарии easy_install в папке /Scripts. Я могу угадать корень Python с помощью sys.executable, а затем сменить имя исполняемого файла. Но я ищу что-то немного более элегантное (и, возможно, кросс-совместимое для ОС). Любые предложения?
Ответы
Ответ 1
Это не здорово, но это сработает.
Простой скрипт Python может сделать проверку
import sys
try:
import setuptools
except ImportError:
sys.exit(1)
else:
sys.exit(0)
ИЛИ ЖЕ
try:
import setuptools
except ImportError:
print("Not installed.")
else:
print("Installed.")
Затем просто проверьте его код выхода в вызывающем скрипте
Ответ 2
Попробуйте выполнить эту команду.
$ pip list
Он возвращает версии как pip
, так и setuptools
. В противном случае попробуйте
$ pip install pil
Если это также не сработает, попробуйте с
$ which easy_install
Ответ 3
Просто запустите следующий код в IDLE:
import easy_install
Если он просто переходит к следующей строке, я думаю, что он установлен.
Если он говорит:
Error: invalid syntax
Тогда он, вероятно, не установлен.
Я знаю это, потому что я тестировал его.
Также просто проверьте import pip
, чтобы узнать, предварительно ли установлен пакет.:)
Ответ 4
Чтобы проверить, установлен ли какой-либо модуль, попробуйте
>>> import sys
>>> 'setuptools' in sys.modules.keys()
False
Ответ 5
вы можете проверить easy_install и setuptools, выполнив следующие команды командной строки:
which easy_install
#finds the path to easy_install if it exists
less path/to/easy_install
#where path/to/easy_install is the output from the above command
#this outputs your easy_install script which will mention the version of setuptools
Если пакет easy_install/setuptools установлен, ваш вывод второй команды выше, вероятно, будет читать примерно так:
#EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==0.6c11','console_scripts','easy_install'
Ответ 6
Он поставляется с предустановленными новыми версиями Python.
pip3 list
было достаточно, чтобы определить, что он установлен для меня
Ответ 7
Это покажет версию вашего setuptools, если он уже установлен
$ python -c "import sys; import setuptools; print (setuptools.version. version)"