Python 2 вместо python 3 как (временный) python по умолчанию?
на моем компьютере
~$ python -V
Python 3.2.1
но я сталкиваюсь с проблемами при запуске некоторых программ python. моя догадка (или, по крайней мере, я хочу попробовать), что есть некоторые проблемы с обратной совместимостью, и я хочу запустить эти сценарии python с помощью
python2 2.7.2-2
который также установлен в моей системе, но я не знаю, как сделать его как (временный) python по умолчанию. Питон script начинается с
#!/usr/bin/env python
и я использую arch linux.
Ответы
Ответ 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
Наслаждайтесь!
Ответ 2
Просто вызовите script, используя что-то вроде python2.7 или python2 вместо простого python.
Итак:
python2 myscript.py
вместо:
python myscript.py
Вместо этого вы можете заменить символическую ссылку "python" в /usr/bin, которая в настоящее время ссылается на python3 со ссылкой на требуемый исполняемый файл python2/2.x. Тогда вы можете просто называть его так же, как и с python 3.
Ответ 3
Вам не нужен "временный Python по умолчанию"
Вы хотите, чтобы скрипты 2.7 начинались с
/usr/bin/env python2.7
И вы хотите, чтобы скрипты 3.2 начинались с
/usr/bin/env python3.2
Для "стандартного" Python действительно не нужно использовать. И идея "временного дефолта" - это просто путь к абсолютной путанице.
Помните.
Явный лучше, чем Implicit.
Ответ 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.
>>>
Ответ 5
mkdir ~/bin
PATH=~/bin:$PATH
ln -s /usr/bin/python2 ~/bin/python
Чтобы прекратить использование python2, exit
или rm ~/bin/python
.
Ответ 6
Используйте команду python для запуска скриптов, а не для оболочки напрямую. Например.
python2 /usr/bin/command
AFAIK это рекомендуемый метод для обходных сценариев с плохой интерпретатор env.
Ответ 7
Если у вас есть проблемы с virtualenv,
Вы можете использовать его:
sudo ln -sf python2 /usr/bin/python
и
sudo ln -sf python3 /usr/bin/python