миграция приложений Python от python-2.6 до python-3

Я перемещаю свое приложение Python от python-2.6 до python 3. Мое приложение было разработано в системе Ubuntu 10.04, имеющей поддержку python 2.6. Теперь я хочу заставить его работать над Ubuntu 14.04 с python 3. Я могу подать заявку Python, полностью независимую от python-2?

Разделите свои взгляды / идеи.

Цените свою справку!!

Спасибо, Mrudula

0
задан 11 November 2015 в 17:03

1 ответ

Можете Вы?Конечно.

Полагайте на мгновение, что Python 2 будет поддерживаемым в 2020 официально и возможно дольше неофициально. Необходимо ли портировать это на Python 3? Вы могли быть ленивыми и 2020-ми, которым позволяют, mrudula, понимают этого.

Я уверен, что Вы знаете, что Python 2 и 3 не непосредственно совместим. Вероятно, необходимо внести несколько изменений в порт между ними. Существуют инструменты как 2to3 (включенный в Ubuntu), которые делают это намного легче — по крайней мере, более автоматизированный — но там вероятны все еще библиотеки, которыми Вы пользуетесь, которые полагаются на Python 2.x, который необходимо будет заменить.

Или можно придерживаться Python 2.7.

Также, который путь, я был посредством того же процесса, как Вы делаете теперь с несколькими маленькими приложениями Django. Самое большое единственное улучшение, которое я могу предложить (если Вы уже не делаете его) должно переместиться в virtualenv ( venv модуль в Py3k). Хранение вещей, разделенных от системы, позволило большому количеству вытянутых волос вырастать снова.

Я предложил бы следующий маршрут:

  1. Установите 14.04 на другой машине (VM, безотносительно)
  2. Создайте Python 2 virtualenv для Вашего приложения и активируйте его.

    sudo apt-get install python-virtualenv
    /usr/bin/virtualenv venv
    source ./venv/bin/activate
    pip install -U pip
    
  3. Установите любые требования, Вы знаете, что Вам нужно с pip. При активации virtualenv он установит их локально, нет sudo необходимый.

  4. Получите вещи, работающие. Это - итеративный процесс выполнения его, пока это не понимает пропавших без вести чего-то.
  5. Когда Вы уверены, что знаете, что все это работает, и Вы имеете все свои требования, выводите их (и ограничения версии) в названном файле requirements.txt

Если Вы довольны Python 2, можно остановиться там. Переместите это на реальный сервер (если это уже не находится на одном), и фиксация Ваш requirements.txt к управлению версиями, таким образом, можно восстановить среду действительно быстро в будущем, если Вы должны.

Если Вы хотите продолжить к Python 3, путь намного более ясен:

  1. Удалите свой Python 2 virtualenv, создайте Python 3 venv и установите свои требования:

    deactivate
    /usr/bin/python3 -mvenv venv
    pip install -U pip
    pip install -Ur requirements
    
  2. Развязать 2to3 (и другие инструменты) на Вашем источнике и конце порт вручную. Удостоверьтесь, что у Вас есть резервное копирование того, что Вы уже имеете. Это не весьма сложный инструмент (см. 2to3 --help) но обычно говорящий, этого должно быть достаточно для получения, Вы движение (не забудьте копировать сначала, это запишет изменения):

    2to3 -wf all .
    
1
ответ дан 28 July 2019 в 08:54

Другие вопросы по тегам:

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