LINUX.ORG.RU

А ты перешел на Python 3?

 , vox populi


3

3

Привет.

Попробовал я этот ваш 3-й пайтон. Почитал статеек и что-то не впечатлился. Профитов мало, а головной боли много. Большая часть программ (если не все) использующие пайтон в качестве скриптового движка даже и не задумываются о портировании. Многие изначально пайтоновские программы и библиотеки тоже не торопятся переходить на новую колею.

Хочется узнать мнение анонимных аналитиков об 3-й ветке вообще, пробовали ли вы переводить свои проекты на 3-й пайтон и собираетесь ли вообще переходить на него?

★★★★★

Тебе нужны только анонимные аналитики?
Если не только, то отвечу, да, все свои проекты перевел на 3 питон. :)
Дальнейшую разработку делаю только в 3.

zJes ★★
()

гентушные утилиты вроде давно уже на 3-м питоне, если это что-то значит (сам не питонщик если чо)

Mr_Gentoo
()

nonlocal безусловно нужен. Ну, и смена умолчательного базового класса на object тоже пусть будет.

tailgunner ★★★★★
()

Для меня наоборот профитов очень много.

Все свои поделки даво перевёл, на третьепитоне сижу с конца 2009-го когда он в транке появился.

PS слышу об отсутствии профитов только от тех кто на нём не прогает. Я думаю люди бессознательно ищут причину оставаться на старом питоне.

true_admin ★★★★★
()
Ответ на: комментарий от fat_angel

Было, но совсем немного. Больше проблем было, к примеру, с map, dict итд. Остальную работу более менее сделал 2to3.
---
Неа, не напрягает, наоборот облегчает. :)

zJes ★★
()
Ответ на: комментарий от science

Я уже забыл когда последний раз закачивал их. Гента просто работает.

fat_angel ★★★★★
() автор топика

Медленно но верно перехожу на 3ку, есть много плюсов, да и работает по тестам 3 версия быстрее

sol13 ★★★★★
()

Перейду, когда поддержка появится во всех нужных мне либах. А пока меня устраивает python 2.7 и pypy.

Boba_Fett
()
Ответ на: комментарий от fat_angel

А с какими-нибудь труднорешаемыми проблемами при переезде на 3-ку сталкивался?

на своих проектах нет, а вот с чужими иногда мараюсь, но обычно они тупо не работают, причём падают весьма неожиданно. Я, кстати, уже начинаю ненавидеть вычурный код с питонячими трюками. Это хрен отрефакторишь. Да что там рефакторинг, хрен поймёшь почему оно падает. Но это уже проблема низкого качества проектов и полного отсутствия тестов.

Вот последний пример:

$ flake8 ./crm.py 
Traceback (most recent call last):
  File "/usr/bin/flake8", line 5, in <module>
    main()
  File "/usr/lib/python3.3/site-packages/flake8/run.py", line 73, in main
    warnings += check_file(path, options.ignore, complexity)
  File "/usr/lib/python3.3/site-packages/flake8/run.py", line 26, in check_file
    warnings = pyflakes.checkPath(path, ignore)
  File "/usr/lib/python3.3/site-packages/flake8/pyflakes.py", line 659, in checkPath
    return check(open(filename, 'U').read() + '\n', ignore, filename)
  File "/usr/lib/python3.3/site-packages/flake8/pyflakes.py", line 710, in check
    w = Checker(tree, filename)
  File "/usr/lib/python3.3/site-packages/flake8/pyflakes.py", line 192, in __init__
    self._runDeferred(self._deferredFunctions)
  File "/usr/lib/python3.3/site-packages/flake8/pyflakes.py", line 228, in _runDeferred
    handler()
  File "/usr/lib/python3.3/site-packages/flake8/pyflakes.py", line 574, in runFunction
    self.handleNode(stmt, node)
  File "/usr/lib/python3.3/site-packages/flake8/pyflakes.py", line 298, in handleNode
    handler = getattr(self, nodeType)
AttributeError: 'Checker' object has no attribute 'TRY'

Хрен поймёшь как чинить. И это у софтины которая 1) сама является линтером 2) имеет офицальную поддержку py3k.

true_admin ★★★★★
()

Предпочитаю использовать python 3, однако бывает, что приходится брать второй питон из-за зависимостей. Например, PIL пока не портировали, а аналоги что-то не очень свежо выглядят.

anonymous
()
Ответ на: комментарий от true_admin

Вот последний пример:

Сообщение об ошибке настолько понятно, насколько может быть понятно автоматически сгененрированное сообщение.

AttributeError: 'Checker' object has no attribute 'TRY'
Хрен поймёшь как чинить.

Добавить обработку AST-узла try? :)

tailgunner ★★★★★
()
Ответ на: комментарий от zJes
$ pylint ./crm.py 
No config file found, using default configuration
************* Module crm
E: 29,0: invalid syntax

споткнулось на этом:

class Addr(metaclass=CheckTypes):
  def __init__(self, name:str, service:str):
    self.name = name
    self.service = service

Короче, pylint не готов.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Готов, если использовать порт на 3 питон.
По крайней мере у меня работает с 3 на хорошо. (У него есть заскоки, включая работу с метаклассами, но это статик чекер...)

zJes ★★
()
Ответ на: комментарий от tailgunner

Добавить обработку AST-узла try?

А куда оно делось? В py2k версии-то всё работает. Кстати, grep -r TRY ./flake8 вообще молчит. В общем, я ещё помедитирую над этим, но с ходу я не смог понять что там могло сломаться.

true_admin ★★★★★
()

Скорей всего перейду, когда выйдет django 1.6.

provaton ★★★★★
()
Ответ на: комментарий от zJes

Готов, если использовать порт на 3 питон.

где лежит этот порт? Я слил версию с bitbucket, она по-прежнему не умеет метаклассы.

У него есть заскоки, включая работу с метаклассами,

В смысле он на них падает? И это порт на py3k? Спасибо, не надо такого чекера.

но это статик чекер..

как это оправдывает заскоки?

В общем, как и pyflakes, похоже, все чекеры реально никто не развивает. А кишки у них очень нудные и нетривиальные. Я думаю я быстрее новый чекер напишу чем разберусь как старые работают.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

А куда оно делось?

А оно вообще было?

В py2k версии-то всё работает

Видимо, в Py2-версии хватает TRYEXCEPT и TRYFINALLY (не знаю подробностей AST). Собственно, и исправлять это так же - сделать TRY = TRYEXCEPT, у них всех один обработчик - рекурсия во вложенный код.

В общем, как и pyflakes, похоже, все чекеры реально никто не развивает. А кишки у них очень нудные и нетривиальные

Как раз pyflakes простой. Нужен просто опыт разработки языков.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Хм, сделал TRY = handleChildren и заработало.

Даже не знаю что и думать. Вроде как и проблему решил, но на самом деле это был метод тыка. Пойду багрепорт отправлю.

true_admin ★★★★★
()

начинающий питонщик, но пишу только на 3

Deleted
()
Ответ на: комментарий от true_admin

В смысле он на них падает?

Не падает, просто не видит результат работы метакласса, уж очень нетривиально в статике разобрать аст метакласса и вытащить то что этот метакласс делает.

zJes ★★
()
Ответ на: комментарий от zJes

Хм, а ссылочку на этот волшебный порт можно?

в статике разобрать аст метакласса и вытащить то что этот метакласс делает.

ааа, ну это фантастика, имхо.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

в статике разобрать аст метакласса и вытащить то что этот метакласс делает.

ааа, ну это фантастика, имхо.

Это называется «абстрактная интерпретация».

tailgunner ★★★★★
()
Ответ на: комментарий от true_admin

Ну видимо пул реквесты в битбакете слабее, честно говоря первый раз его увидел после редизайна.

zz ★★★★
()
Последнее исправление: zz (всего исправлений: 1)
Ответ на: комментарий от true_admin

Вот помню что ставил через easy_install3, что-то там было нехорошего с тестами, не помню. :) Но что пайлинт что логилаб питон3 поддерживают.

# easy_install3 pylint
Searching for pylint
Best match: pylint 0.26.0
Processing pylint-0.26.0-py3.2.egg
pylint 0.26.0 is already the active version in easy-install.pth

Using /usr/local/lib/python3.2/dist-packages/pylint-0.26.0-py3.2.egg
Processing dependencies for pylint
Finished processing dependencies for pylint

zJes ★★
()
Ответ на: комментарий от zJes

В ауре вроде для 3 есть.

спасибо, почти работает:

$ pylint ./crm.py 
Problem importing module typecheck.py: No module named 'typecheck'
Problem importing module similar.py: No module named 'similar'
Problem importing module raw_metrics.py: No module named 'raw_metrics'
Problem importing module format.py: No module named 'format'
Problem importing module base.py: No module named 'base'
Problem importing module variables.py: No module named 'variables'
Problem importing module newstyle.py: No module named 'newstyle'
Problem importing module string_format.py: No module named 'string_format'
Problem importing module utils.py: No module named 'utils'
Problem importing module design_analysis.py: No module named 'design_analysis'
Problem importing module exceptions.py: No module named 'exceptions'
Problem importing module imports.py: No module named 'imports'
Problem importing module classes.py: No module named 'classes'
Problem importing module misc.py: No module named 'misc'
Traceback (most recent call last):
  File "/usr/lib/python3.3/site-packages/pylint/utils.py", line 254, in check_message_id
    return self._messages[msgid]
KeyError: 'W0704'

Я так понимаю что проблема с typecheck из-за того что у меня в папке такой модуль есть (кстати, это косяк). А вот KeyError: 'W0704' это на их совести :(

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Что-то вообще бред. Целиком и полностью. Он не может найти свои собственные модули?
Вот тут метаклассы.

pylint Settings.py 
No config file found, using default configuration
************* Module Common.Settings
C:  1,0: Missing docstring
C:  4,0:Settings: Missing docstring
R:  4,0:Settings: Too many public methods (37/20)
W:  2,0: Unused import SettingsBase


Report
======
8 statements analysed.

zJes ★★
()
Последнее исправление: zJes (всего исправлений: 1)

Как там дела у рапространненых фреймворков по переходу на 3-й петон ? Про фласк в курсе кто-либо ?

cryptohedge
()

5 из 5 критичных библиотек не собираются переходить на 3-ку. А так бы использовал. Практичнее оказалось использовать Jython+Java

cab ★★★★
()
Последнее исправление: cab (всего исправлений: 1)

Я застал Python уже тогда, когда 3-я версия была в самом разгаре. Имхо она лучше, хотя различий не так уж и много.

eugeno ★★★★★
()
Ответ на: комментарий от fat_angel

pyExcelerator/xlwt, kinterbasdb, pil, numpy и reportlab.
Плюс с кодировками стало хуже (точнее менее удобно, как по мне) работать, а у меня их зоопарк.

cab ★★★★
()
Последнее исправление: cab (всего исправлений: 1)
Ответ на: комментарий от fat_angel

Я предпочитаю решать проблемы по мере их поступления.

Сейчас у меня туева хуча софта на втором питоне, местами весьма нетривиального, и я не понимаю почему должен тратить туеву хучу времени для перевода этого софта на третий питон, если и под вторым все прекрасно работает.

AIv ★★★★★
()
Ответ на: комментарий от science

PS слышу об отсутствии профитов только от тех кто на нём не прогает. Я думаю люди бессознательно ищут причину оставаться на старом питоне.

А можно назвать хотя бы несколько профитов?;-)

AIv ★★★★★
()
Ответ на: комментарий от cab

pyExcelerator/xlwt, kinterbasdb, pil, numpy и reportlab.

NumPy вроде бы работает с Python 3.x

http://www.mail-archive.com/numpy-discussion@scipy.org/msg26524.html

«As many of you probably already know, Numpy works fully on Python 3 and Python 2, with a *single code base*, since March. This work is scheduled to be included in the next releases 1.5 and 2.0»

scipy тоже подтягивается.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

Отлично. Осталось дождаться остальных. В их предметную область я лезть не собираюсь. Разве что с портом kinterbasdb мог бы напрячься, как припрет совсем.

cab ★★★★
()
Последнее исправление: cab (всего исправлений: 2)
Ответ на: комментарий от AIv

всякого по мелочи. Типа Decimal быстрее работает.

cab ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.