Чи варто використовувати python 2.6 або 2.7 або 3.x? [зачинено]


25

Версія python, яку я використовую, становить 2.6 , а є 2.7 і 3.x. Зазвичай я використовую python для якоїсь тривіальної програми / фрагмента. Я усвідомлюю, що існує велика різниця між 2.x та 3.x. Мені дуже хотілося б знати, якщо я збираюся зробити більший проект з python, яку версію python я повинен використовувати?

Чи варто оновити до 2.7, або перейти до 3.x або залишитися з 2.6?

Рішення має базуватися на таких умовах:

  1. Кількість користувачів в Інтернеті як спільнота. Більше користувачів означає більше пакету з відкритим кодом та допомогу в них.

  2. Функціональність.

  3. Підтримка офіційної команди розвитку.

  4. Сумісність для існуючого модуля / пакета.

Спасибі!


5
Чи може хтось вказати на будь-які корисні зміни, внесені python 3.x?
lamwaiman1988

1
Ви згадуєте, що знаєте, що сумісність із існуючими модулями є проблемою, але ви не кажете нам, на які існуючі модулі покладається ваш код. Це питання майже не відповідає.
Wooble

2
не по темі; рекомендації І горила проти акули в одному питанні вау!

3
Це питання та його відповіді будуть корисні лише для невеликого вікна часу. Що має сенс зараз, може не мати особливого сенсу за рік, оскільки 3.x стає більш зрілим.
Брайан Оуклі

Зазначивши, що (а) питання все ще актуальне у 2014 році (наприклад, RobotFramework не працює з Python 3) та (b) закриття цього питання зберігає цю сторінку незаперечною, оскільки - навіть незважаючи на високу результати пошуку в Google, - нові відповіді не може бути розміщено.
Боб Штейн

Відповіді:


27

Я б сам запропонував Python 2.7. Це остання версія в серії Python 2.x. Більшість модулів Python створені для роботи з Python 2.x. Існує рух , щоб спробувати перейти на Python 3, але ні один з модулів Python 3 написані як для 2 і 3. Чи не забудьте НЕ використовувати старі функції , які не доступні в Python 3, так що ви можете просто 2to3 ваш код змусити його працювати на Python 3.

Якщо ви їдете з Python 3, ви один з ранніх прийнятих, і вам, швидше за все, доведеться сказати іншим, щоб завантажити Python 3 (у багатьох комп'ютерах просто буде Python 2). З іншого боку, нові функції збираються лише на Python 3. Python 2 постійно підтримується. Тому я б не пропонував все-таки використовувати Python 2 через 10 років.

Якщо ви хочете стежити за пакетами Python та їх сумісністю з Python 3, ви можете слідкувати за цим сайтом: http://python3wos.appspot.com/


django не підтримує 3.x? Тож користувач, знайомий з django, просто не може використовувати 3.x?
lamwaiman1988

ей нормально, коли виходить нова версія, це означає, що краще, ніж попередня. І чому python виходить у серії 2.x, а інший у серії 3.x? Яка в них фактична різниця.
ГОРЯЧЕ

4
Python 3 вніс деякі корисні зміни в мову, але вони не сумісні з деякими функціями в Python 2. Тому деякі речі були видалені, а деякі додані (а вилучені речі роблять їх не сумісними).
jsternberg

+1 для 2,7, найкраще співвідношення сумісності (принаймні для бібліотек, якими я користуюся), поки 3 не буде більш поширеним
wildpeaks

@Ashinkn Зміни можна знайти тут docs.python.org/3.0/whatsnew/3.0.html . Основна зміна порушення сумісності - це перемикання з використання Unicode (на відміну від ASCII) як типу рядка за замовчуванням. Де люди використовували рядки як байт [], перш ніж з'явився новий тип байтаря, який використовується замість цього. Також будь-які 2x рядки, явно визначені як unicode, потрібно змінити на звичайні рядки.
Еван Плейс

19

На мою думку, нам потрібно почати переходити на Python 3, і якщо є бібліотеки, несумісні з Python 3, нам потрібно почати робити це не так.

Python 3 - це майбутнє мови, і чим більше коду ми пишемо, використовуючи його, тим краще.


Нам потрібен єдиний інтерпретатор, сумісний з обома версіями python і вміє їх інтелектуально аналізувати. Тобто, зазначений інтерпретатор збирав би і python2, і python3 в один і той же байт-код, щоб вони були сумісні, що дало можливість використовувати python3 з бібліотекою python2. Якщо C, C ++ і Java можуть це зробити, то може це зробити і Python.
Бреден Кращий

4

Тепер Django "експериментально" підтримує Python 3.2+, як видно з їх публікацій тут .

Враховуючи це і те, що Python 3.x - це майбутнє мови, я б сказав, що Python 3 є найкращим зараз.


2

Для кожного проекту перевірте, чи всі бібліотеки, необхідні для проекту, вже отримали підтримку python 3.x, тоді використовуйте python 3.x, оскільки це майбутнє, і це остання офіційна стабільна версія.

Інше використовувати все, що потрібно використовувати для сумісності бібліотеки.


2

Не важливо, чи ви використовуєте Python 2.7 або Python 3 Якщо ви не використовуєте старі функції в Python 2.7, ви можете просто 2to3 свій код, щоб змусити його працювати на Python 3.


0

Раніше я був у одному човні, і ось що я знайшов. Python 2.6, 2.7 та 3.2 можна встановити поруч за допомогою MacPorts та їх легко перемикати. (Я користувач Mac). Шукайте альтернативи Macports для вашої платформи.


0

До тих пір, поки міст не буде розроблений внутрішньо в межах 3.x, щоб дозволити прозорому використанню 2,7 пакетів, хід загрожує небезпекою, оскільки мова справді все про те, що їй було внесено. Формальні міркування та чистота в порівнянні незначні. Такий прозорий міст, швидше за все, не відбудеться із чистої педантичної впертості та зневаги до бази користувачів.


Такий прозорий міст є недосяжним. Пакети 2to3 та шість забезпечують достатнє з'єднання, але далеко не прозорі.
Martijn Pieters
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.