osx: configurando python padrão para arquivos no terminal?

0

Como faço para definir o python padrão para executar arquivos py sem a palavra-chave "python", por exemplo, $ django-admin.py manage.py startproject" no bash shell?

    
por amateur 11.12.2011 / 07:37

2 respostas

2

Isso depende da primeira linha do arquivo .py (a "linha shebang"). Normalmente você verá algo assim:

#!/usr/bin/python2.6

Nesse caso, o script quando executado como um executável autônomo será executado usando a versão do Python em /usr/bin/python2.6. Por que esta versão do python? Pode ter sido codificado no script, mas é mais provável que tenha sido definido automaticamente quando você instalou o script. Por exemplo. quando você instalou o Django você:

  1. Baixou a fonte e executou python setup.py - nesse caso, o script é instalado para ser executado com a versão do python. Você executou o setup.py usando
  2. Ran easy_install django - nesse caso, o script é instalado para ser executado com a mesma versão do python que o easy_install (também um script Python) usa. (É por isso que muitas vezes você verá várias versões do easy_install listadas, por exemplo, easy_install-2.5, easy_install-2.6 e easy-install-2.7 disponíveis. Quando eu digito easy_install , ele usa easy_install-2.6.)
  3. Ran pip install django - mesmo negócio com easy_install, basicamente.

Para executar o script com outra versão do Python, você pode alterar a linha shebang (por exemplo, para ler #!/usr/bin/python2.7 ) ou especificar seu python na linha de comando (por exemplo, /path/to/python2.7 /path/to/django-admin.py args ). Note, entretanto, que scripts como o django-admin.py são apenas um front-end para um conjunto maior de bibliotecas (neste caso, Django), e essas bibliotecas serão instaladas por padrão no local da biblioteca para uma versão específica do Python. . Por exemplo, se a primeira linha do django-admin.py indicar que ele está sendo executado sob o Python 2.6, as bibliotecas do Django terão sido instaladas em um diretório específico da biblioteca do Python 2.6, e elas não estarão disponíveis por padrão para, por exemplo. Python 2.7.

Em outros casos, você verá uma linha como esta:

#!/usr/bin/env python

Nesse caso, o script será executado com qualquer versão do Python que você obtiver quando digitar apenas python na sua linha de comando. Você poderá alterar a versão do python que os scripts com esse tipo de linha têm, por exemplo, alterando sua variável de ambiente PATH para que seu shell encontre o python em um diretório diferente.

Em ambos os casos, você deve considerar verificar virtualenvwrapper , uma extensão para virtualenv . Ele permite que você configure de maneira rápida e fácil vários ambientes virtuais para projetos Python, cada um com sua própria versão e bibliotecas padrão do Python.

Atualização : como sua pergunta menciona o OS X, vale mencionar que no OS X, o / usr / bin / python executa uma versão configurável pelo usuário do Python. Consulte a página de manual do OS X em Python para obter detalhes.

    
por 11.12.2011 / 08:45
0

encontre a versão longa aqui:

em resumo:

defaults write com.apple.versioner.python Version x.x

/usr/bin/python -V
-> Python x.x.y

para uma mudança rápida dentro da sessão CLI do

export VERSIONER_PYTHON_VERSION=2.5
/usr/bin/python -V
-> Python 2.5.6

voltar ao padrão standard python

unset VERSIONER_PYTHON_VERSION
    
por 19.05.2015 / 13:28