#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 без какого-либо риска, что это повлияет на другие ваши установки.
Когда вы закончите, выйдите из сеанса терминала. Если вы хотите вернуться к этой среде со всеми библиотеками, которые вы в нее установили, вы можете просто активировать ее снова.