Как убедиться, какая версия Python мне нужна? - PullRequest
0 голосов
/ 27 января 2020

Мне сложно найти различие, которое необходимо Python, когда я загружаю какой-то проект Python. Я знаю, что есть разница между python2 print "Hello world" и python3 print("Hello world"), но не намного больше.

Например, есть некоторые интересные демо , чтобы попытаться, но после следующих инструкций, я все еще получил это не работает. Вот мне и интересно, нужна ли ему версия 3 или 2? Излишне говорить, что в этом проекте нигде не используется print;)

Итак, каковы ключевые различия в уровне синтаксиса, которые могут помочь начинающему вычитать, нужны ли Python2 или Python3?

Этот вопрос не о том, чтобы запустить демонстрацию, упомянутую выше, а о том, чтобы различать версии Python, потому что я не первый раз задаюсь вопросом об этой же проблеме, потому что питонисты, похоже, не указывать это в своих проектах очень часто.

Ответы [ 2 ]

0 голосов
/ 27 января 2020

Ваш пример демонстрационного проекта имеет различные подсказки, что он предназначен для Python2.

  1. В backend/manage.py первая строка
#!/usr/bin/env python

Если только код был написан для запуска на Arch Linux, этот исполняемый файл будет Python2.

В backend/simple_app/* у многих файлов есть эта строка:
from __future__ import unicode_literals

Это не понадобится в Python3, потому что все строки являются строками Unicode.

Последнее обновление проекта - 3 года go.
0 голосов
/ 27 января 2020

Как вы правильно заявили, наиболее очевидная проверка - print , но я хотел бы предоставить несколько дополнительных советов, чтобы быстро и точно понять, был ли код, который вы используете, был написан для Python 2 или Python 3.

Проверьте Python 3 linting
Используйте PyLint , указав параметр --py3k

Проверка Компиляция скрипта

Вы можете использовать эти команды, чтобы проверить, компилируется ли ваш код для Python 2 и / или Python 3:

$ python2 -m py_compile foo.py
$ python3 -m py_compile foo.py

Это может дать вам быстрый решение в случае, если вы получаете ошибку компиляции для одного из двух.

Проверьте вывод 2to3

В случае, если у вас есть код, который работает в обеих Python версиях, но не работает должным образом в одном из двух, вы также можете попробовать запустить конвертер «2 в 3», доступный здесь:
https://docs.python.org/2/library/2to3.html

Этот конвертер использовался для конвертации сценарий от Python 2 до Python 3. Если предлагается преобразование, вполне вероятно, что вы ищете ng для сценария Python 2.

Выполнение кода в двух разных виртуальных средах

Самый последний тест - создание двух разных virtualenv, один с Python 3 и один с Python 2 и проверьте функциональность кода в обоих.

Все эти методы кажутся мне проще, быстрее и менее подвержены ошибкам, чем ручная проверка кода.

...