AguramazdaDebian это Linux, Python благополучно живет в мире Linux. Причина в том что существует глобальное разделение интерпретаторов 2 и 3 ветки. Соответственно python и python3
john_16@linux-laptop ~ $ which python
/usr/bin/python
john_16@linux-laptop ~ $ ll /usr/bin/python
lrwxrwxrwx 1 root root 9 мая 22 13:29 /usr/bin/python -> python2.7*
john_16@linux-laptop ~ $ which python3
/usr/bin/python3
john_16@linux-laptop ~ $ ll /usr/bin/python3
lrwxrwxrwx 1 root root 9 мая 22 13:29 /usr/bin/python3 -> python3.4*
john_16@linux-laptop ~ $ less /usr/bin/python3
Как видно каждый из них ведет к своей версии интерпретатора.
Но как же быть, если есть программа foo.py и мы запускаем ее не указывая интерпретатора, например
john_16@linux-laptop /tmp $ ./foo.py
Есть в мире UNIX специальное соглашение, в котором первой строчкой файла указывается специальный код, который определяет каким именно интерпретатором кода пользоваться при запуске файла на исполнение. Выглядит это для нашего случая так:
john_16@linux-laptop /tmp $ cat foo.py
#!/usr/bin/env python
import sys
print(sys.version)
john_16@linux-laptop /tmp $ ./foo.py
2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2]
john_16@linux-laptop /tmp $ cat foo3.py
#!/usr/bin/env python3
import sys
print(sys.version)
john_16@linux-laptop /tmp $ ./foo3.py
3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4]
Т.е. мы указываем явно что для исполнения этого файла нужно воспользоваться системным интерпретатором доступным по соответствующей команде.
Таким образом в UNIX подобных системах решается подобный вопрос.
Если существует необходимость воспользоваться несколькими разными интерпретаторами на одной системе, то лучше для этого пользоваться виртуальным окружением. Это спасет вас от большого числа ошибок и проблем с которым вряд ли способен справиться начинающий User.
Про версии пакетов вам ответили ранее. Используйте лучше pip.