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