Não é uma boa idéia mexer com o sistema python porque, como você notou, o Ubuntu usa python amplamente, então qualquer mudança pode deixar seu sistema instável.
Além disso, como desenvolvedor, posso dizer que instalar bibliotecas de terceiros globalmente em seu sistema Python também não é uma boa idéia - tudo vai começar a desmoronar assim que você tiver dois projetos que requerem versões diferentes do Django, por exemplo.Felizmente, o Python tem ótimas ferramentas para criar ambientes isolados que podem ser completamente independentes do sistema Python.
Dê uma olhada em virtualenv e zc.buildout (junto com o djangorecipe) para uma solução civilizada para o seu problema. :)
UPDATE: Muito brevemente, veja como o zc.buildout resolveria seu problema:
Você cria um diretório onde você coloca bootstrap.py e buildout.cfg
arquivo que contém
[buildout]
parts = django
versions = versions
[versions]
django = 1.2.5
[django]
recipe = djangorecipe
settings = development
eggs = ${buildout:eggs}
project = mymegaapp
Então você executa /path/to/python/interpreter/python bootstrap.py
, ponto no qual seu buildout "lembra" qual interpretador python você usou. Ele também cria um diretório bin
, onde todos os seus scripts "globais" serão gerados automaticamente. Então você executa bin/buildout
, que faz o download e instala o Django da versão especificada, cria um projeto vazio chamado "mymegaapp" etc. Após a conclusão, você encontrará o comando django
no diretório bin
que é equivalente ao django- admin.py, para que você possa executar
bin/django syncdb
bin/django runserver
Você nunca precisa se preocupar em lembrar de usar o intérprete correto. Claro, isso é apenas uma parte muito pequena do que você pode fazer com o buildout ... apenas pense em colocar o buildout.cfg em um VCS para que você possa reconstruir o aplicativo com todas as dependências em versões exatas, mesmo em alguns daqui a alguns anos ... ou sobre ter várias configurações para diferentes "configurações de implantação":)
Para um exemplo rápido de como fazer isso com o virtualenv, você pode dar uma olhada neste artigo - as instruções devem funcionar separadas da primeira parte - você precisará instalar o setuptools com o seu pypy, não com o interpretador 'padrão'. Em seguida, você usará o script python
gerado no diretório bin
da sandbox:
cd myapp
../venv/bin/python manage.py runserver 0.0.0.0:8000
(tenho a sensação de que a questão se torna cada vez menos relevante para o Ubuntu ... devemos pedir que seja migrada para o stackoverflow?)