2015-09-11 2 views
1

Я видел довольно много сообщений по этой теме, но, похоже, мало согласия или окончательного ответа. Я понимаю, что OSX (в моем случае 10.10.5) поставляется с установленным Python2.7, как описано в official python docs.версии python, setup.py, псевдоним python, нос

После выполнения этих инструкций теперь у меня установлен python 2.7 и установлен python 3.4 (доступно $ python и $ python3 соответственно) и, возможно, больше версий. Я нахожу версии питона в нескольких местах:

  • /Applications/Python 3.4
  • /usr/local/bin (содержит python, python2, python2.7, python3, python3.4
  • /usr//bin (содержит python2.6, python2.7)
  • /System/Library/Frameworks/Python.framework/Versions (содержит 2.3, 2.5 , 2.6, 2.7, Current)

Кроме того, у меня все еще возникают проблемы при установке пакетов python ... и я думаю, что это связано с тем, что я не совсем понимаю, где установлены определенные пакеты, их переменные PATH и их псевдонимы.

Проблема:

Например, после успешной установки nose с pip install nose, я не могу использовать $ nosetests потому, что команда не найдена.

Предлагаемые решения:

  • Осмотреть nose каталоги и искать nosetests псевдоним его (но несмотря на наличие многих других файлов в /nose, независимо от версии, нет ничего о nosetests).

  • Другое предложение запустить python setup.py install внутри /nose но просто дает эту ошибку:

    /usr/local/Cellar/python/2.7.10_1/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file 'setup.py': [Errno 2] No such file or directory

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

+0

Я бы предположил, что вы используете 'virtualenv' для управления интерпретаторами и зависимостями по каждому проекту; это также может помочь, когда вы распространяете, например. 'pip freeze> requirements.txt' не содержит кучу нерелевантных пакетов. См. http://hackercodex.com/guide/python-development-environment-on-mac-osx/ – jonrsharpe

ответ

1

Мой первоначальный вопрос был в основном два вопроса: один о противоречащих друг другу версий питона, а другой об установке пакета nose специально.

Для первого вопроса, я нашел первый комментарий jonrsharpe на мой вопрос очень полезным. Он ссылается на a tutorial that explains virtualenv и как его настроить. Тем не менее, я все еще не знал, как устанавливать пакеты только в пределах этого virtualenv, потому что даже когда я вхожу в каталог virtualenv и I pip install, пакет по-прежнему находится в списке под pip freeze, когда он находится за пределами этого каталога virtualenv.

Решение:

This tutorial was helpful in further explaining virtualenv, что это такое и как его использовать. Короче говоря, virtualenv создает копию python в каталоге virtualenv, который имеет свой OWN pip. Это местный pip должен быть использован для установки пакетов локально для этого virtualenv, ссылаясь как [virtualenv_dir_you_created]/bin/pip install nose

И, используя virtualenv, проблемы с разрешения для записи в пакетах по всему миру исчезают.

Смежные вопросы