2014-10-28 3 views
0

Я обнаружил, что некоторые библиотеки зависят от python2, а некоторые библиотеки работают на python3. Я знаю, что есть lib, который может передавать код с python 2 на python 3. Я не уверен, имеет ли он более простой способ заставить эти библиотеки работать вместе. Как я могу использовать эти библиотеки? Большое спасибоКак работать с python 2 и 3

EDIT: для уточнения вопроса. Я хочу написать скрипт python, чтобы скопировать список изменений из perforce и передать их в git. Поэтому я хочу использовать как GitPython, так и P4Python. GitPython может работать только на python 2 (хотя оценить совместимость python 3.3 является его текущей целью), в то время как P4Python может работать только на python 3.

Как я могу это сделать?

+1

'import' ['six'] (http://pythonhosted.org/six/) – tripleee

+2

См. Также http://stackoverflow.com/questions/11372190/python-2-and-python-3-dual- разработка – tripleee

+0

спасибо большое @tripleee – Jacky

ответ

1

Большинство python2.x проекты могут быть сделаны для работы с python3 использования 2to3 инструмента, который обычно поставляется в комплекте с установкой python3.x.

Как было отмечено в комментариях, если вы заинтересованы в разработки кода, который может быть использован (из коробки) на обоих python2.x и python3.x, пакет третьей стороны six содержит много полезных утилиты для записи обратно и вперед совместимого кода. Это не поможет вам запустить чужой код :-).

2

Существует множество инструментов и приемов для порта python 2.x to python 3.x и для написания кода, совместимого с обеими версиями.

В документации на Python 3 вы найдете выделенный текст Howto. Некоторые упомянутые инструменты:

  • 2to3: конвертировать из python2 в Python3
  • caniusepython3 (command-line tool, web app: для управления зависимостями
  • six: проект низкого уровня, чтобы помочь писать 2-3 совместимый код
  • modernize : помочь портировать существующий код до шести

И последнее, но не менее важное: __future__ является обязательным в этом контексте, по крайней мере, известный:

from __future__ import print_function 

, что позволяет использовать print() функцию из Python3 под python2

Но если вы хотите, чтобы сделать серьезные вещи, прочитать всю Howto.

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