Хобрук: Ваш путь к мастерству в программировании

Почему инструменты командной строки Python 2.7 не расположены в `/usr/local/bin` в Mac OS X?

Образ установочного диска Python 2.7 для Mac OS X (python-2.7-macosx10.5.dmg) гласит:

Установщик помещает приложения в «Python 2.7» в папку «Приложения», инструменты командной строки в /usr/local/bin и базовый механизм в /Library/Frameworks/Python.framework.

Однако после установки в /usr/local/bin/ нет файлов Python 2.7.

  • Другие видят такое же поведение?
  • Я предполагаю, что решение состоит в том, чтобы просто создать эквивалентные символические ссылки на /usr/local/bin как на Python 2.6, или я что-то упустил?

  • Спасибо, что побудили меня установить 2.7, сейчас попробую. 16.07.2010
  • Ага, здесь тоже самое. Нет Python 2.7 в /usr/local/bin. У меня все еще есть python2.7 на моем пути, поэтому я не знаю, проблема ли это. 16.07.2010
  • Я не: zsh: command not found: python2.7 16.07.2010
  • @Matthias: Что такое which python2.7? 16.07.2010
  • У меня есть ссылки на 2.7 в /usr/local/bin, но я считаю, что мне пришлось явно выбрать эту опцию (установить инструменты командной строки) в установщике. 16.07.2010
  • @Kenny/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 16.07.2010

Ответы:


1

Установщик python.org Python для OS X представляет собой метапакет с набором из нескольких пакетов. Вы можете просмотреть пакеты, нажав кнопку Customize в процессе установки. Символические ссылки в /usr/local/bin устанавливаются пакетом UNIX command-line tools. В выпуске 2.7 этот пакет больше не выбирается по умолчанию. Вы можете установить его и символические ссылки, выполнив выборочную установку и выбрав этот пакет; если вы уже установили 2.7, выберите только этот пакет.

РЕДАКТИРОВАТЬ: Тем не менее, важно признать, что при сборке фреймворка OS X Python просто наличия /usr/local/bin в пути поиска обычно недостаточно. Причина этого в том, что скрипты Python, включенные в пакеты, по умолчанию устанавливаются в каталог bin каталога Python, например. /Library/Frameworks/Python.framework/Versions/2.7/bin. Это верно практически для всего, что использует Distutils значения по умолчанию или инструменты установки, которые обертывают Distutils, например easy_install (Distribute или setuptools) или pip. Вот почему существует еще один установочный пакет, Shell profile updater, который включен по умолчанию и пытается изменить ваш профиль входа в систему, чтобы поместить каталог bin фреймворка в начало пути поиска вашей оболочки, PATH. Если это сделано, символические ссылки в /usr/local/bin не требуются для вызова python2.7.

16.07.2010
  • Нед — Без символических ссылок я получал сообщение об ошибке при попытке создать виртуальную среду с использованием Python 2.7, в то время как Python 2.6.5 настроен как моя установка по умолчанию (т.е. у меня есть PATH=/Library/Frameworks/Python.framework/Versions/2.6 /bin:${PATH} в моем ~/.bash_profile для 2.6, а не для 2.7). Теперь, когда символические ссылки установлены, я могу mkvirtualenv -p python2.7 foo27 создать виртуальную среду с помощью Python 2.7. 16.07.2010
  • Если вы добавите 2.7/bin к своему пути к PATH, это также должно решить проблему. Если вы хотите, чтобы python по умолчанию оставался на python.org 2.6, вам нужно будет вставить 2.7/bin после 2.6 bin: `PATH=/Library/Frameworks/Python.framework/Versions/2.6/bin:/Library/Frameworks/ Python.framework/Версии/2.7/бен:${ПУТЬ} 17.07.2010


  • 3
    11:54 jsmith@upsidedown find /usr -name python2.7
    11:54 jsmith@upsidedown
    

    Да, это отстой.

    Я бы следовал шаблону, который сделал установщик Python 2.6 (и, в моем случае, 2.5), и создал символические ссылки (как вы подозреваете). Схема осталась прежней, по крайней мере:

    11:57 jsmith@upsidedown /Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
    Python 2.7 (r27:82508, Jul  3 2010, 21:12:11) 
    [GCC 4.0.1 (Apple Inc. build 5493)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> 
    

    Возможно, стоит написать отчет об ошибке установщика.

    16.07.2010
    Новые материалы

    Понимание дженериков в TypeScript: подробное руководство
    Введение TypeScript, строго типизированный надмножество JavaScript, хорошо известен своей способностью улучшать масштабируемость, удобочитаемость и ремонтопригодность приложений. Одной из..

    Учебные заметки JavaScript Object Oriented Labs
    Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

    Разбор строк запроса в vue.js
    Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

    Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
    «Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

    Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
    каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

    Как настроить Selenium в проекте Angular
    Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

    Аргументы прогрессивного улучшения почти всегда упускают суть
    В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..