Можно ли использовать setuptools для портирования пакетов, реализованных в Python 2-3? - PullRequest
2 голосов
/ 05 мая 2010

Найдена некоторая информация о портировании пакетов с Python 2 на 3 с использованием дистрибутива setuptools по ссылке ниже

http://packages.python.org/distribute/python3.html

У меня есть C api, который может быть собран с использованием Python 2.x, но мне нужно собрать его в Python 3.x Это можно сделать с помощью дистрибутива.

У кого-нибудь есть идеи по этому поводу?

Ответы [ 2 ]

3 голосов
/ 05 мая 2010

Нет, это нельзя сделать с помощью Distribute. Распространение вызывает только сценарий 2to3 на этапе сборки, но 2to3 может преобразовывать только между исходными файлами Python 2.x и исходными файлами Python 3.x Для C API вы должны сделать это сложным путем, вручную настроив код для компиляции с обоими API Python.

Очень неполный список изменений C API между Python 2.x и Python 3.x можно найти здесь . В этом же документе описаны основные различия между Python 2.x и 3.x на уровне исходного кода Python.

0 голосов
/ 05 мая 2010

distriubte использует инструмент Python 2to3 для автоматического (попытки) преобразования кода Python 2 в код Python 3. Однако это работает только для кода, написанного на Python. Код на C должен быть перенесен вручную.

Хорошая новость заключается в том, что API Python для C мало изменился между Python 2.6 и 3.1. Основное отличие состоит в том, что Python 3 теперь использует Unicode для всех строк и имеет отдельный тип bytes для обработки необработанных двоичных данных.

...