Aplicar um script de shell para executar uma versão específica do python

0

Atualizar.

Alterar o alias infelizmente não funciona. Eu mudei o alias para alias python = '/ usr / bin / python2.7' no entanto, o script shell ainda executa o script python em 2.4.3.

Muru - Estou usando o PYTHONPATH para direcionar para o caminho do python. No entanto, como você disse isso pode não estar correto. Existe uma versão do PYTHONPATH que pode ser usada para direcionar para um executável específico do python?

O script da Shell está abaixo conforme solicitado.

cd ../../../..

export BREVE_CLASS_PATH=/home/user/breve_2.7.2/lib/classes
export PYTHONPATH=/usr/bin/python2.7


cd /home/user/breve_2.7.2

./bin/breve /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py

Estou executando um script de shell que executa um script python em um determinado programa.

Meu problema é que o script python está sendo lançado em python 2.4, enquanto eu preciso dele para rodar em python 2.7. No script de shell, adicionei a seguinte linha para tentar impor o python2.7 a ser usado.

export PYTHONPATH=/usr/bin/python2.7

No entanto, quando o script python imprime qual versão está usando, recebo o python 2.4.3. Eu estou indo da maneira correta sobre isso?

Como devo proceder?

    
por Slimjimmy 15.04.2015 / 16:25

2 respostas

0

Como você tem várias versões do Python instaladas e deseja determinar qual python deve ser usado como padrão, use o comando update-alternatives , que mantém os links simbólicos determinando os comandos padrão.

Antes de tudo, corra isto:

update-alternatives --list python

Se o resultado for:

update-alternatives: error: no alternatives for python

Em seguida, você deve usar update-alternatives to --install alternatives das várias versões do python que você tem (se a opção --list resultar em alternativas de listagem, vá direto para a opção --config mencionada posteriormente). Parâmetros para a opção --install são group, target e priority onde o maior número de prioridade resulta em maior prioridade e group significa o path do comando que receberá um grupo de alternativas:

update-alternatives --install /usr/bin/python python /usr/bin/python2.4 1
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

Depois disso, o python 2.7 é seu python padrão, pois recebeu um número de prioridade maior e você tem ambas as versões do python instaladas como alternativas (ou mais, se você instalou outras versões também). Tenha em mente que o python 2.7 é agora o python padrão para tudo.

Agora você pode listar as alternativas instaladas novamente para um grupo com o parâmetro --list:

update-alternatives --list python

/usr/bin/python2.4
/usr/bin/python2.7

E agora você pode alternar entre as alternativas com:

update-alternatives --config python

Digite o número de seleção e está tudo pronto para ter a versão desejada do python usada como o python padrão.

Use man pages para ler mais sobre update-alternatives:

man update-alternatives
    
por Ahti Komu 17.04.2015 / 13:16
0

Por que não basta fazer

python /home/user/breve_2.7.2/demos/Getting-Started/RandomWalker_version.py 

na última linha. Isso deve resolvê-lo (quando o shebang estiver correto).

    
por don.joey 17.04.2015 / 13:35