/ / python 2 замість python 3 як (тимчасовий) python за замовчуванням? - пітон

python 2 замість python 3 як (тимчасовий) типовий python? - python

на моєму комп’ютері

~$ python -V
Python 3.2.1

але я потрапляю в проблеми, коли запускаю деякі програми python. я здогадуюсь (або, принаймні, я хочу це спробувати), що є деякі проблеми із сумісністю назад, і я хочу запустити ці сценарії python із

 python2 2.7.2-2

який також встановлений у моїй системі, але я не знаю, як зробити це як (тимчасовий) пітон за замовчуванням. Сценарій python починається з

 #!/usr/bin/env python

і я використовую аркуш Linux.

Відповіді:

62 за відповідь № 1

Ви можете використовувати virtualenv

# Use this to create your temporary python "install"
# (Assuming that is the correct path to the python interpreter you want to use.)
virtualenv -p /usr/bin/python2.7 --distribute temp-python

# Type this command when you want to use your temporary python.
# While you are using your temporary python you will also have access to a temporary pip,
# which will keep all packages installed with it separate from your main python install.
# A shorter version of this command would be ". temp-python/bin/activate"
source temp-python/bin/activate

# When you no longer wish to use you temporary python type
deactivate

Насолоджуйтесь!


9 для відповіді № 2

Просто зателефонуйте до сценарію, використовуючи щось на зразок python2.7 або python2, а не python.

Тому:

python2 myscript.py

замість:

python myscript.py

Те, що ви можете зробити, це замінитисимволічне посилання "python" в / usr / bin, яке в даний час посилається на python3 зі посиланням на потрібний виконуваний файл python2 / 2.x. Тоді ви могли просто назвати це так, як би це було з python 3.


9 для відповіді № 3

Ви не хочете "тимчасовий Python за замовчуванням"

Ви хочете, щоб 2.7 сценарії почалися з

/usr/bin/env python2.7

І ви хочете, щоб 3.2 сценарії почали з

/usr/bin/env python3.2

Тут справді немає користі для Python "за замовчуванням". Ідея "тимчасового дефолту" - це лише шлях до абсолютної плутанини.

Пам'ятайте.

Явне краще, ніж неявне.


8 для відповіді № 4

Ви могли б використовувати alias python="/usr/bin/python2.7":

bash-3.2$ alias
bash-3.2$ python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> ^D
bash-3.2$ alias python="/usr/bin/python3.3"
bash-3.2$ python
Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 16 2013, 23:39:35)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

8 за відповідь № 5
mkdir ~/bin
PATH=~/bin:$PATH
ln -s /usr/bin/python2 ~/bin/python

Щоб припинити використання python2, exit або rm ~/bin/python.


5 для відповіді № 6

Якщо у вас є проблеми з virtualenv,

Ви можете використовувати це:

sudo ln -sf python2 /usr/bin/python

і

sudo ln -sf python3 /usr/bin/python

2 для відповіді № 7

Використовуйте команду python для запуску скриптів, а не оболонки безпосередньо. Наприклад

  python2 /usr/bin/command

AFAIK - це рекомендований метод для вирішення сценаріїв з поганим рядком інтерпретації ENV.