Как установить зависимости в разных средах python с помощью pyenv

#python #macos #pyobjc #pyenv

#python #macos #pyobjc #pyenv

Вопрос:

Я установил cmu в OSX и запустил его с помощью потрясающей утилиты под названием cmus-osx.py который использует pyobjc и tinytag . Он отлично работал с Python 2.7.11.

Но я хотел также запустить mpsyt , который работает только с Python 3, поэтому я установил pyenv , чтобы иметь возможность запускать обе утилиты, не вмешиваясь в мою среду. Это сработало, но вызвало у меня некоторые проблемы с cmus-osx.py , поэтому я создал проблему в репозитории GitHub: https://github.com/azadkuh/cmus-osx/issues/5 .

После некоторого обсуждения с автором я понял, что pyobjc после установки он стал недоступен ни в одной из python сред pyenv pyenv. Теперь функция уведомлений, для которой требуется pyobjc, работает корректно только при запуске cmus-osx.py из системной среды python. Автор утилиты рекомендовал мне

переустановите (поделитесь) зависимостями (pyobjc и tinytag) в каждой среде, которая запускает cmus-osx utlity

Дело в том, что я понятия не имею, как это сделать. Я использую OSX и запускаю cmus-osx.py из оболочки zsh.

Я знаю, что смогу разобраться в этом, прочитав документацию pyenv, но я все еще учусь программировать и управлять системой на основе * nix, и я хочу понять, что происходит на самом деле.

Комментарии:

1. Проблема, которую вы открыли, имеет ответ — вам необходимо установить нужные пакеты во всех используемых вами средах. Если вы хотите использовать pyobjc и tinytag на Pythin 3, вам необходимо установить их для этой среды.

2. Да, дело в том, что я действительно не знаю, как управлять этой средой pyenv, и я не хочу портить свою среду. Если я изменю версию Python и попытаюсь установить эти пакеты, он сообщит мне, что он уже установлен. Нужно ли мне добавлять этот путь к пакетам в какой-либо конфигурационный файл, чтобы «поделиться» этими зависимостями? Или как я мог бы установить их без сообщения системы о том, что они уже установлены?

Ответ №1:

Я бы посоветовал немного почитать инструмент виртуальных сред Python, virtualenv, например, отличное руководство здесь.

В основном шаги:

 pip install virtualenv
virtualenv some_dir_name
  

Вы можете указать, какой именно python установить в вашу виртуальную среду, с -p помощью флага.

 some_dir_name/bin/acivate
  

Пользователям Windows необходимо будет использовать activate.bat

Затем вы находитесь в указанной вами среде python без установленных пакетов, кроме стандартной библиотеки и pip, и можете устанавливать все, что вам нравится, с помощью pip без какого-либо риска, что это повлияет на другие ваши установки.

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