pyinstaller: как обрабатывать ненужные зависимости с помощью pip? - PullRequest
0 голосов
/ 11 октября 2019

У меня вопрос о том, как pip обрабатывает зависимости python, а не conda. Если я сделаю следующее:

pip install pandas

Это установит pandas и numpy в мою текущую среду. Однако если я это сделаю:

  • Почему команда устанавливает numpy? Почему pip заботится о зависимостях для меня?

Это важно, потому что я пытаюсь "облегчить" компиляцию pyinstaller. У меня есть небольшая программа, которая использует ограниченную функциональность pandas, для которой мне не нужны все зависимости.

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 11 октября 2019

Что ж, просто сделайте pip uninstall numpy и запустите затем pyinstaller, если вы уверены, что numpy не нужен.

Обычно pip устанавливает все зависимости, которые перечислены как необходимые зависимости в описании пакета.

Чтобы понять зависимости, посмотрите на исходный код панд: https://github.com/pandas-dev/pandas

Посмотрите на файл setup.py (https://github.com/pandas-dev/pandas/blob/master/setup.py)

Вы найдетеследующие строки:

"install_requires": [
    "python-dateutil >= 2.6.1",
    "pytz >= 2017.2",
    "numpy >= {numpy_ver}".format(numpy_ver=min_numpy_ver),
],

Вот почему pip устанавливает numpy. pandas говорит, что для этого требуется numpy, поэтому pip следует этим инструкциям.

Если удаление numpy и запуск pyinstaller не сработают, вы можете опубликовать отдельный вопрос, чтобы спросить, как убедить pyinstaller не включать пакет.

В некоторых пакетах Pyinstaller настроены зависимости по умолчанию (насколько я знаю). Возможно, есть способ переопределить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...