I have a buggy long python project that I am trying to debug. Its messy and undocumented. I am familiar with python2.7. There are no binaries in this project. The straight f
Attempt to compile it. If the script uses syntax specific to a version then the compilation will fail.
$ python2 -m py_compile foo.py
$ python3 -m py_compile foo.py
The following statements indicate Python 2.x:
import exceptions
for i in xrange(n):
...
print 'No parentheses'
# raw_input doesn't exist in Python 3
response = raw_input()
try:
...
except ValueError, e:
# note the comma above
...
These suggest Python 2, but may occur as old habits in Python 3 code:
'%d %f' % (a, b)
# integer divisions
r = float(i)/n # where i and n are integer
r = n / 2.0
These are very likely Python 3:
# f-strings
s = f'{x:.3f} {foo}'
# range returns an iterator
foo = list(range(n))
try:
...
except ValueError as e:
# note the 'as' above
...
add this line to the file:
help()
this should automatically print the version along with the default help interface. remember to remove it later.
Use this in your code:
import platform
print platform.python_version()
outputs a string: 2.7.10