Python 2to3 не меняет файлы

У меня есть куча модулей, написанных на python 2.x, и мне нужно, чтобы они были на 3.x, чтобы они работали. Я запустил 2to3 для всей папки, и, похоже, все работало нормально, но когда я снова посмотрел на файлы, они оказались такими же. Я не использовал 2to3, и мне было интересно, сохраняет ли он преобразованные файлы в каком-то другом каталоге.


person carloabelli    schedule 15.01.2013    source источник


Ответы (1)


Вам нужно явно указать 2to3, чтобы действительно записать изменения, используя переключатель -w:

2to3 -w example.py
person Martijn Pieters    schedule 15.01.2013
comment
Я использую следующую команду: › 2to3 -n -w -f поднять . А 2to3 прямо говорит: › RefactoringTool: Файлы, которые нужно изменить: › : ./ez_setup.py › RefactoringTool: ./setup.py И ничего не меняет. Я понятия не имею, почему. У меня есть вариант записи и без резервного копирования. Это сработало для правила печати. - person Autiwa; 07.05.2018
comment
@Autiwa: Почему вы применяете отдельные правила? Если ничего не изменилось, то правило raise не нашло ничего исправить. - person Martijn Pieters; 08.05.2018
comment
Я применяю отдельные правила, потому что их много, и я хочу протестировать промежуточный код, иначе я не смогу отменить одно правило, не изменив все в своей системе контроля версий. Кроме того, правило повышения находит что-то, потому что оно говорит о файлах, которые нужно изменить, но на самом деле ничего не делает. - person Autiwa; 09.05.2018
comment
@Autiwa: вы не сможете протестировать наполовину переведенный код; вам было бы гораздо лучше преобразовать его в целом. - person Martijn Pieters; 10.05.2018
comment
Я не могу проверить это, потому что другие модули еще не переведены. Вот почему я хочу разделить вещи, потому что большая часть кода не может быть протестирована, некоторые импортируются неудачно. Спасибо, что пытаетесь мне помочь, возможно, по-вашему это лучше, но я действительно хочу использовать 2to3 таким образом, и это то, что я хотел бы понять. Тогда я могу понять, что делает 2to3 для отдельных правил. - person Autiwa; 11.05.2018