Чи варто використовувати 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.