Где установить пакет Python - для всей системы или в виртуальной среде? - PullRequest
0 голосов
/ 18 апреля 2020

У меня установлено Python 3.7 (для всей системы) вместе с такими пакетами, как Numpy, Pandas, pptx, xlsxwriter и некоторыми другими. Недавно я узнал о виртуальных средах (да, я очень поздно на вечеринку), и ясно вижу преимущества. Но я запутался в нескольких вещах. Надеюсь, я смогу получить ответы здесь.

  1. В большинстве своих проектов я использую общие пакеты, такие как Numpy, Pandas, Matplotlib, mysql .connector, et c , Должен ли я установить эти общесистемные? Или я должен установить их в каждой виртуальной среде, которую я создаю для каждого проекта, что, например, означает установку Pandas 10 раз в 10 различных виртуальных средах?

  2. Если я установлю пакеты (для всей системы), которые не являются частью стандартной библиотеки Python, например, pptx и mysql .connector, И я создаю виртуальную среду, получу ли я доступ к этим пакетам из виртуальной среды, или должен Я также устанавливаю их в виртуальной среде?

  3. А как насчет такого модуля, как ноутбук Jupyter, где он не является частью какого-либо конкретного проекта, но мне нравится использовать его для простой разработки кода и тестирование (простые графики и др. c.). Должно ли это быть установлено во всей системе?

Я рассматриваю возможность удаления Python 3.7 и всех пакетов с моего компьютера, а также установку sh fre Python 3.8. Я хочу подойти к этому «правильному» пути. Я бы подумал, что такие пакеты, как Numpy и Pandas (я довольно много занимаюсь манипулированием данными / построением графиков) должны быть установлены во всей системе, и каждая виртуальная среда должна иметь к ней доступ автоматически, и более специализированный пакет (для меня в минимум) как pptx должен быть установлен в определенной виртуальной среде для конкретного проекта. Правильно ли мое предположение по этому поводу?

Пожалуйста, посоветуйте, как лучше всего подходить к установке пакета в контексте наличия виртуальных сред.

РЕДАКТИРОВАТЬ: основываясь на ответе Ни, я бы задал еще один вопрос: Существуют ли модули (например, python -dateutil, которые могут использоваться во многих проектах) и / или обстоятельства, в которых имеет смысл установить модуль для всей системы?

1 Ответ

3 голосов
/ 18 апреля 2020

Как правило, я никогда не устанавливаю пакеты в масштабе всей системы.

  1. Вы можете установить пакеты, для которых требуется c версия Numpy, в вашей среде. В этих случаях, если вы обновите общесистемную версию Numpy, пакет в среде может сломаться, и вы не узнаете, что произошло.

  2. Да, вы можете получить к ним доступ из виртуальной среды. Но в целом, не устанавливайте пакеты для всей системы

  3. Опять же, я бы не устанавливал эту систему в масштабе всей системы. Например, у вас могут быть среды, в которых работают разные версии python, которые могут быть несовместимы с одной и той же версией Jupyter

Похоже, вы выполняете большую работу по науке о данных - Возможно, вы захотите использовать Anaconda для управления виртуальными средами и установками пакетов

...