Будет ли Python2.7 доступен для 10.04 в будущем?

27

Поскольку Ubuntu 10.04 является выпуском LTS, будет ли он поддерживать python 2.7 в качестве версии по умолчанию для сопровождающего пакета или, по крайней мере, в будущем появится пакет python2.7?

Поскольку это будет последний крупный выпуск Python 2.x, и он будет долгое время оставаться на месте, я решил его использовать. Я скомпилировал его из исходного кода (конечно, после создания deps), но время от времени нахожу небольшие проблемы.

Безопасно ли определять мой скомпилированный python 2.7 по умолчанию, так как есть некоторые дистрибутивные приложения, которые работают на python.

crodjer
источник

Ответы:

16

Нет, не считается безопасным определять 2.7 в качестве интерпретатора Python по умолчанию в Lucid . И я не думаю, что это будет в будущем.

  • В одном выпуске нет основных обновлений программного обеспечения.

    Поэтому python2.7 не заменит 2.6 в качестве интерпретатора по умолчанию. Этот вид обновления выполняется только между версиями, в пределах одной - особенно LTS - существуют только так называемые стабильные обновления, то есть исправления ошибок и обновления, связанные с безопасностью.

Тем не менее, совершенно безопасно использовать python2.7, определяя ваш интерпретатор как #!/usr/bin/python2.7и предлагая пользователям установить его, используя make altinstallисходный код python, наряду с python2.6.

Стефано Палаццо
источник
41

У той же проблемы был VPS, который не может быть обновлен до Maverick (даже новые образы LTS не всегда доступны вовремя). Ответ Мариуса помог мне, но его следует расширить:

Добавьте PPA к своим источникам

Если вы находитесь в моей ситуации, простой совет по бегу add-apt-repositoryне сработает для вас. Итак, давайте сделаем это старомодным способом:

  1. Откройте файл /etc/apt/sources.list(вам нужны привилегии суперпользователя; если вы находитесь в оболочке, это, вероятно, означает запуск sudo vim /etc/apt/sources.list)

  2. Пройдите до конца файла (если используете vim, переключитесь в режим вставки, нажав i) и добавьте следующие строки:

    deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    deb-src http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu lucid main 
    
  3. Сохраните и выйдите (in vim: type :wq) и вернитесь к оболочке.

  4. Введите следующее (вы можете найти правильный ключ в PPA ; это часть после косой черты в «технических деталях» - убедитесь, что вы получили правильный):

    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
  5. Теперь введите следующее, чтобы обновить список источников:

    sudo apt-get update

Установите и настройте Python 2.7

  1. Откройте оболочку на вашем сервере и введите следующее:

    sudo apt-get install python2.7 python2.7-dev
  2. Чтобы начать easy_installработать, получите distributeскрипт bootscrap:

    curl -O http://python-distribute.org/distribute_setup.py
    python2.7 distribute_setup.py
    
  3. Наконец, вы хотите pipи virtualenvработаете, если вы планируете делать что-то серьезное:

    easy_install-2.7 pip
    pip-2.7 install virtualenv
    

Настройка virtualenv

  1. Создайте папку для вашей новой среды и откройте ее:

    mkdir my_env && cd my_env
  2. Создайте саму виртуальную среду (точка указывает, что текущая директория является местоположением среды, замените ее на правильный путь, если вы пропустили предыдущий шаг):

    virtualenv --no-site-packages --python=python2.7 .
  3. Активировать среду. Вы заметите изменения в приглашении оболочки, чтобы отразить активное окружение:

    source bin/activate
  4. Все, что вы сейчас делаете в этой оболочке, будет использовать скрипты в binпапке виртуальной среды и пакеты Python этой среды. Помните, что эта опция --no-site-packagesозначает, что вы начинаете с минимального набора пакетов (включая pip, однако), поэтому вам нужно установить все необходимые вам пакеты.

  5. Когда вы закончите, деактивируйте среду (это команда, распознаваемая активной средой):

    deactivate

Вы также можете установить пакеты в виртуальную среду, передав -Eопцию pip(например, pip install some-package -E /path/to/virtual/environmentустановить some-packageв виртуальную среду по заданному пути). Имейте в виду, что у вас будет несколько разных версий, pipсоответствующих различным установленным версиям Python.

Это хорошая идея, pip-2.7если вы хотите установить пакеты для Python 2.7 при работе вне виртуальной среды ( --python=python2.7опция, которую мы передали, virtualenvозначает, что виртуальная среда будет использовать версии инструментов Python 2.7, которые она предоставляет, поэтому вам не нужно беспокоиться об этом).

Алан слива
источник
1
В моем случае я уже установил pip для 2.6, и мне пришлось easy_install-2.7 -U pipфорсировать установку версии 2.7. Но спасибо, это отличная помощь!
Гейб Моутарт
2
Для шага 2 в разделе «Установить и настроить Python 2.7» мне пришлось сделать wget --no-check-certificate https://bootstrap.pypa.io/ez_setup.py -O - | sudo python2.7. А затем, чтобы получить пункт, sudo python2.7 -m easy_install pipа затем sudo python2.7 -m easy_install --upgrade pip. Опция --no-check-certificate была необходима, чтобы получить жалобу от wget на сертификат SSL. (См. Pypi.python.org/pypi/setuptools#unix-wget )
zlovelady
10

Есть PPA с Python 2.7, созданный для Ubuntu 10.04. Это может быть безопаснее / удобнее, чем строить из источника.

Мариус Гедминас
источник
2

Это решило все виды проблем, которые у меня были /programming/7561221/undefined-symbol-pyobject-nextnotimplemented-error-when-loading-psycopg2-modu .

Сейчас libpython2.7.so.1.0идет ссылка на мой python2.7 и т. Д. Все выглядит более счастливым.

Последний кусок, который мне нужно было понять, это mod_wsgiустановка. Если вы просто выдаете:

$ apt-get install libapache2-mod-wsgi

Тогда это будет скомпилировано для Python2.6 :(

$ ldd /usr/lib/apache2/modules/mod_wsgi.so

libpython2.6.so.1.0 => /usr/lib/libpython2.6.so.1.0 (0x00178000)

Поэтому я следовал инструкциям, предоставленным Горком Зопом здесь .

У меня наконец-то рабочий сервер. Спасибо.

Наоко
источник
1

я так не думаю, так как потребуется изменить многие программы и библиотеки, связанные с версией 10.04. На самом деле большая часть работы в Ubuntu выполняется с использованием определенной версии Python. Изменение его на python изменило бы много системных файлов.

Для 10.10 он доступен из synaptic / aptitude, просто установив python2.7 (вы также можете установить 3 и 3.1), но для 10.04 не сделано никаких работ, чтобы разобраться с 10.04.

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

РЕДАКТИРОВАТЬ - Изменено Python 2.7 на Python 2.6 по умолчанию, так как это было дважды проверено из комментариев ниже. Спасибо.

Луис Альварадо
источник
Я только что проверил 10.10 в виртуальном боксе, по умолчанию он имеет Python 2.6.6, хотя для Maverick доступно 2,7 пакета. Я думаю, что его 11.04, который имеет его по умолчанию. Я обычно продолжаю обновлять и менять дистрибутивы, но собираюсь остановиться на 10.04, для его долгосрочной поддержки и моих настроек.
crodjer
да, 11.04 имеет 2,7 за дефолт за несколько дней
Стефано Палаццо