Вопрос по python – Обновите питона, не нарушая ням

50

Я недавно установил Python 2.7.3 на машину CentOS, компилируя из исходного кода. Python 2.7.3 устанавливается в /opt/python2.7, и когда я его установил, я просто изменил / usr / bin / python, чтобы он указывал на новую версию. Это очевидно неправильно, хотя, потому что, когда я сделал это, это сломало ням. Я бы получил следующее.

There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   No module named yum

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.3 (default, May 15 2012, 17:45:42) 
[GCC 4.4.4 20100726 (Red Hat 4.4.4-13)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

Я изменил / usr / bin / python, чтобы он указывал на python 2.6.6, но теперь 2.6.6 является версией python по умолчанию. Есть идеи как это исправить?

Для чего? Я использую virtualenv для разработки, но я не вижу, как это относится к моему вопросу. tbeauvais

Ваш Ответ

7   ответов
15

vim `which yum`
modify #/usr/bin/python to #/usr/bin/python2.4
Это правильный ответ, а не многие статьи настаивают на изменении по умолчаниюpython версия в системе ... это не работает для меня ...!
Это на самом деле не разрушает ням, но я согласен, что это рискованное решение. Основная проблема заключается в том, что неясно, что еще вы можете сломатьother than yum, и вы, возможно, не сразу вспомните, что обновление версии Python является возможной причиной будущих проблем. Этот ответ также не объясняет, что еще он рекомендует делать вообще.
можешь объяснить свой ответ?
Давайте сломаем систему, заменив Python, а затем исправим ее, сломав yum? Не хороший совет.
2

pythonz, активный форк pythonbrew, делает это бризом. Вы можете установить версию с:

# pythonz install 2.7.3

Затем установите символическую ссылку с помощью:

# ln -s /usr/local/pythonz/pythons/CPython-2.7.3/bin/python2.7 /usr/local/bin/python2.7
# python2.7 --version
Python 2.7.3
& quot; pythonz требует Python 2.6, 2.7 или выше & quot; : \
1

ln -s /usr/local/bin/python2.7 /usr/bin/python
5

Положил/opt/python2.7/bin в вашемPATH переменная окружения перед/usr/bin... или просто привыкнуть печататьpython2.7.

Такого рода работы. tbeauvais
$ python - версия Python 2.7.3 $ sudo python - версия Python 2.6.6 tbeauvais
0

Если вы хотите попробовать пакеты rpm, вы можете установить бинарные пакеты, основанные на новейших RPM Fedora, но перекомпилированные для RHEL6 / CentOS6 / ScientificLinux-6 на:

http://www.jur-linux.org/download/el-updates/6/

с уважением,

Флориан Ла Рош

-1

Вместо этого я рекомендую обновить путь в связанных скриптах (например, / usr / bin / yum), чтобы указать на ваш предыдущий Python в качестве интерпретатора.

В идеале вы хотите обновить yum и связанные с ним сценарии, чтобы они поддерживаются установленным по умолчанию Python.

Если это невозможно, вышеприведенное полностью работоспособно и проверено.

Изменить:

#!/usr/bin/python

к какому-либо пути вашей старой версии, пока вы не сможете сделать выше ням улучшения.

Случаи, когда вы не можете сделать это, - это если у вас есть изолированный компьютер, у вас нет времени, чтобы обновить обороты вручную, или вы не можете подключиться временно или навсегда в стандартный репозиторий yum.

Интересно, что другой ответ @moven там получил +6 за почти такой же подход.
Я очень рекомендую сделать это наоборот: изменить строку интерпретатора вnew сценарии, чтобы указать наnew Версия Python. Не связывайтесь со скриптами ОС.
134

Я написалкраткое руководство о том, как установить последние версии Python 2 и Python 3 на CentOS 6 и CentOS 7. В настоящее время он охватывает Python 2.7.13 и Python 3.6.0.

Вы не должны менять системную версию Python, потому что она сломает систему (как вы узнали). Установка других версий работает нормально, если вы оставляете исходную версию системы в покое. Это может быть достигнуто с помощью пользовательского префикса (например,/usr/local) при запуске настройки и использованииmake altinstall (вместо нормальногоmake install) при установке вашей сборки Python.

Наличие нескольких версий Python обычно не является большой проблемой, если вы не забудете ввести полное имя, включая номер версии (например, «python2.7» или «pip2.7»). Если вы выполняете всю работу с Python из virtualenv, управление версиями выполняется для вас, поэтому убедитесь, что вы установили и используете virtualenv!

Теперь я переписал учебник, связанный в моем ответе, чтобы он правильно охватил как Python 2.7.3, так и Python 3.3.0. Я также обновил содержание с лучшей информацией, и я расширил раздел о virtualenv.
Правильно, работает точно так же для 3.2 и 3.3.
очень хороший writup = большое спасибо. Я хотел бы предположить, что Python3 будет подобный набор шагов правильно? нет серьезных отличий не так ли?
Отлично, но вы можете обновить его, чтобы установить 2.7.4.
Я сделал скрипт установки в bash, который использовал это руководство, спасибо. Не стесняйтесь разместить его на своем сайте, если вам это нравится!gist.github.com/timss/5122008

Похожие вопросы