Я начинаю изучать питон и люблю его. В основном я работаю на Mac, а также на Linux. Я нахожу это в Linux (в основном Ubuntu 9.04), когда я устанавливаю модуль python с помощью apt-get, он отлично работает. Я могу импортировать это без проблем.
На Mac я привык использовать Macports для установки всего Unixy. Однако я обнаружил, что большинство модулей python, которые я устанавливаю с ним, не просматриваются python. Я потратил некоторое время, играя с настройками PATH и используя python_select. На самом деле ничего не работает, и на данный момент я не совсем понимаю, вместо этого я просто ковыряюсь.
У меня сложилось впечатление, что не все любят Macports для управления модулями Python. Я хотел бы начать все сначала, используя более «общепринятый» (если это правильное слово) подход.
Итак, мне было интересно, какой метод используют разработчики Python для Mac для управления своими модулями?
Бонусные вопросы:
Вы используете питон Apple или какую-то другую версию? Вы компилируете все из исходников или есть хорошо работающий менеджер пакетов (Fink?).
Ответы:
Самый популярный способ управления пакетами python (если вы не используете свой системный менеджер пакетов) - использовать setuptools и easy_install. Вероятно, он уже установлен в вашей системе. Используйте это так:
easy_install использует индекс пакетов Python, который является прекрасным ресурсом для разработчиков Python. Посмотрите вокруг, какие пакеты доступны.
Лучшим вариантом является pip , который набирает обороты, поскольку пытается исправить множество проблем, связанных с easy_install. Pip использует тот же репозиторий пакетов, что и easy_install, просто он работает лучше. На самом деле, единственный раз, когда нужно использовать easy_install, нужно использовать эту команду:
После этого используйте:
В какой-то момент вы, вероятно, захотите немного узнать о virtualenv . Если вы много разрабатываете на Python в проектах с конфликтующими требованиями к пакетам, virtualenv - находка. Это позволит вам иметь совершенно разные версии различных пакетов и легко переключаться между ними в зависимости от ваших потребностей.
Что касается того, какой питон использовать, то использование Python от Apple доставит вам меньше всего головной боли, но если вам нужна более новая версия (я считаю, что Leopard - это 2.5.1), я бы выбрал macports python 2.6.
источник
Вашему вопросу уже три года, и есть некоторые детали, не раскрытые в других ответах:
Большинство людей, которых я знаю, используют HomeBrew или MacPorts , я предпочитаю MacPorts из-за того, что он полностью соответствует среде Mac OS X по умолчанию и моим настройкам разработки. Просто переместите папку / opt и протестируйте свои пакеты в обычной пользовательской среде Python.
MacPorts переносится только на Mac, но с помощью easy_install или pip вы узнаете, как настроить свою среду на любой платформе (Win / Mac / Linux / Bsd ...). Кроме того, он всегда будет более актуальным и с большим количеством пакетов
Я лично позволяю MacPorts обрабатывать мои модули Python, чтобы все было в курсе. Как и любой другой менеджер пакетов высокого уровня (например, apt-get), он намного лучше подходит для тяжелой работы с модулями с большим количеством двоичных зависимостей. Я не могу создать свои привязки Qt (PySide) с помощью easy_install или pip. Qt огромен и требует много времени для компиляции. Как только вам понадобится пакет Python, которому нужна библиотека, используемая программами, отличными от Python, старайтесь избегать easy_install или pip
В какой-то момент вы обнаружите, что в MacPorts отсутствуют некоторые пакеты. Я не верю, что MacPorts когда-либо предоставит вам весь CheeseShop . Например, недавно мне понадобился модуль Elixir , но MacPorts предлагает только py25-elixir и py26-elixir, а не версию py27. В таких случаях у вас есть:
(убедитесь, что вы всегда набираете pip- (версия))
Это создаст дополнительную библиотеку Python в вашем домашнем каталоге. Да, Python будет работать с более чем одним расположением библиотеки: одно находится под контролем MacPorts, а другое - локальным пользователем для всего, что отсутствует в MacPorts.
Теперь обратите внимание, что я предпочитаю pip над easy_install. Есть веская причина избегать использования setuptools и easy_install. Вот хорошее объяснение, и я стараюсь держаться от них подальше. Одна очень полезная функция pip - предоставить вам список всех модулей (вместе с их версиями), которые вы установили с помощью MacPorts, easy_install и самого pip:
Если вы уже начали использовать easy_install, не волнуйтесь, pip может распознать все, что уже сделано easy_install, и даже обновить пакеты, установленные с его помощью.
Если вы разработчик, следите за virtualenv для управления различными настройками и комбинациями версий модулей. В других ответах уже упоминается об этом, но до сих пор не упоминается модуль Tox , инструмент для проверки правильности установки вашего пакета с разными версиями Python.
Хотя у меня обычно нет конфликтов версий, мне нравится иметь virtualenv, чтобы настроить чистую среду и получить четкое представление о зависимостях моих пакетов. Таким образом, я никогда не забуду никаких зависимостей в моем setup.py
Если вы выбираете MacPorts, имейте в виду, что несколько версий одного и того же пакета больше не выбираются, как старый стиль Debian с дополнительным пакетом python_select (он все еще существует для совместимости). Теперь у вас есть команда select, чтобы выбрать, какая версия Python будет использоваться (вы даже можете выбрать те, которые установлены Apple):
Добавьте tox поверх него, и ваши программы должны быть действительно портативными
источник
Смотрите среду разработки Python OS X . Лучше всего использовать MacPorts . Загрузите и установите MacPorts, затем установите Python через MacPorts, введя следующие команды в Терминале:
ИЛИ
Используйте первый набор команд для установки Python 2.6, а второй набор - для установки Python 3.0. Затем используйте:
ИЛИ
В приведенных выше командах замените packagename на имя пакета, например:
Эти команды автоматически установят пакет (и его зависимости) для данной версии Python.
Чтобы получить полный список доступных пакетов для Python, введите:
ИЛИ
Какую команду вы используете, зависит от того, какую версию Python вы выбрали для установки.
источник
sudo python_select python30
был заменен наsudo port select --set python python30
.Я использую MacPorts для установки Python и любых сторонних модулей, отслеживаемых MacPorts
/opt/local
, и устанавливаю любые вручную установленные модули (те, которые не находятся в репозитории MacPorts)/usr/local
, и это никогда не вызывало никаких проблем. Я думаю, вы можете быть сбиты с толку относительно использования определенных сценариев MacPorts и переменных среды.MacPorts
python_select
используется для выбора «текущей» версии Python, но он не имеет ничего общего с модулями. Это позволяет, например, установить Python 2.5 и Python 2.6 с помощью MacPorts и переключаться между установками.В
$PATH
переменные окружения никак не влияет на то , что модули Python загружаются.$PYTHONPATH
это то, что вы ищете.$PYTHONPATH
должен указывать на каталоги, содержащие модули Python, которые вы хотите загрузить. В моем случае моя$PYTHONPATH
переменная содержит/usr/local/lib/python26/site-packages
. Если вы используете Python для MacPorts, он настраивает для вас другие подходящие каталоги, поэтому вам нужно только добавить дополнительные пути к файлам$PYTHONPATH
. Но опять же, он$PATH
вообще не используется, когда Python ищет модули, которые вы установили.$PATH
это используется для поиска исполняемых файлов, так что если вы установите Python MacPorts', убедитесь , что/opt/local/bin
находится в вашем$PATH
.источник
Нет ничего плохого в использовании установки MacPorts Python. Если вы устанавливаете модули Python из MacPorts, но не видите их, это, вероятно, означает, что вы не вызываете установленный вами Python MacPorts. В оболочке терминала вы можете использовать абсолютные пути для вызова различных Python, которые могут быть установлены. Например:
Чтобы получить правильный питон по умолчанию, необходимо убедиться, что ваша оболочка $ PATH настроена правильно, чтобы сначала был найден правильный исполняемый файл. Другое решение - определить псевдонимы оболочки для различных питонов.
Установка python.org (MacPython) тоже подойдет, как предлагали другие.
easy_install
может помочь, но, опять же, поскольку у каждого экземпляра Python может быть своя собственнаяeasy_install
команда, убедитесь, что вы вызываете правильную командуeasy_install
.источник
Если вы используете Python из MacPorts, у него есть собственный easy_install, расположенный по адресу: /opt/local/bin/easy_install-2.6 (для py26, то есть). Это не то же самое, что просто вызвать easy_install напрямую, даже если вы использовали python_select для изменения своей команды python по умолчанию.
источник
sudo port install py2.6-pip
получить пип.Вы вообще изучали easy_install ? Он не будет синхронизировать ваши macports или что-то в этом роде, но он автоматически загрузит последний пакет и все необходимые зависимости, т.е.
для пакета модульного тестирования носа, или
для
trac
трекера ошибок.На их странице EasyInstall также есть немного дополнительной информации .
источник
Для установок MacPython я нашел эффективное решение проблемы с помощью setuptools (easy_install) в этом сообщении в блоге:
http://droidism.com/getting-running-with-django-and-macpython-26-on-leopard
Один из полезных советов - узнать, какая версия python активна в терминале:
источник
Когда вы устанавливаете модули с MacPorts, они не входят в версию Python от Apple. Вместо этого эти модули устанавливаются в выбранную версию Python для MacPorts.
Вы можете изменить версию Python, используемую по умолчанию, с помощью порта для Mac под названием python_select . инструкции здесь .
Также есть easy_install . Который будет использовать python для установки модулей python.
источник
python_select
устарел, см. новые ответы.Возможно, у вас уже есть
pip3
предустановка, поэтому просто попробуйте!источник
Что касается того, какую версию python использовать, Mac OS обычно поставляет старую версию python. Рекомендуется перейти на более новую версию. Вы можете загрузить .dmg с http://www.python.org/download/ . Если вы это сделаете, не забудьте обновить путь. Вы можете найти точные команды здесь http://farmdev.com/gotits/66/python-3-0-on-mac-os-x-alongside-2-6-2-5-etc-/
источник
Я использую easy_install с Python от Apple, и он отлично работает.
источник
Непосредственно установите один из пакетов fink (Django 1.6 по состоянию на ноябрь 2013 г.)
Или создайте себе virtualenv:
Или используйте fink django плюс любые другие установленные пакеты pip в virtualenv
источник