Aleluia!
Começo este post com esta palavra porque deu muito trabalho conseguir (está certo que sou iniciante). Vou colocar aqui alguns passos pra você que deseja atualizar a versão no Django na sua hospedagem Kinghost.
No final do tópico deixei algumas referências que usei para construir este tutorial. O que fiz foi pegar a ideia de vários lugares, juntar tudo e fazer funcionar.
No momento, estou usando o Django versão 1.9.4. Vamos lá:
Primeiro crie o diretório .site-packages dentro de /home/usuário/app_wsgi/
cd apps_wsgi/ (se ela não existe, crie com o mkdir) mkdir .site-packages easy_install --install-dir=$PYTHONPATH virtualenv
Agora vamos criar um diretório para armazenar seu ambiente virtual. Crie a pasta .virtualenvs/ na raiz da sua hospedagem (/home/usuário/) e depois o ambiente. O ambiente virtual serve para você instalar versões de pacotes diferentes das atuais. Você pode ter vários ambientes virtuais instalados, cada um isolado do outro com suas versões de pacotes e aplicativos.
mkdir .virtualenvs python apps_wsgi/.site-packages/virtualenv .virtualenvs/NOME_DO_AMBIENTE_VIRTUAL
Ative o ambiente para começar a instalar seus pacotes.
source .virtualenvs/NOME_DO_AMBIENTE_VIRTUAL/bin/activate
Até aqui, todo o conteúdo é original do https://gist.github.com/douglasmiranda/1232693.
Agora o nome do seu ambiente virtual vai aparecer entre parênteses no começo da linha. Isso quer dizer que você está usando seu ambiente virtual.
(SEU_AMBIENTE_VIRTUAL)14:51 ~ $ which pip ~/.virtualenvs/djpy/bin/pip
Agora sabemos que o pip usado é do ambiente virtual. Instale o Django na versão que preferir:
pip install django==1.9.4
Para verificar se foi instalado corretamente (meu ambiente virtual chama-se djpy) e qual a versão está instalada:
(djpy)-bash-4.1$ which django-admim.py /usr/local/bin/django-admin.py (djpy)-bash-4.1$ which django-admin ~/.virtualenvs/djpy/bin/django-admin (djpy)-bash-4.1$ django-admin.py --version 1.8.3 (djpy)-bash-4.1$ django-admin --version 1.9.4
Repare que se eu colocar o .py no final do comando faz total diferença sobre o que você pretende fazer.
Crie seu projeto pelo painel administrativo da KingHost. Ele deve aparecer na pasta /home/usuário/app_wsgi/SEU_PROJETO. Agora você tem a pasta e um arquivo chamado /home/usuário/app_wsgi/SEU_PROJETO.wsgi.
Agora exclua seu projeto vazio e depois crie ele novamente com o mesmo nome na versão correta (cuidado com o .py):
(djpy)-bash-4.1$ rm -R SEU_PROJETO/ (djpy)-bash-4.1$ django-admin startproject SEU_PROJETO
Altere o conteúdo do arquivo SEU_PROJETO.wsgi para (lembrando que só coloquei maiúsculas para facilitar a visualização):
import os, sys apache_configuration = os.path.realpath(os.path.dirname(__file__)) project = os.path.join(apache_configuration, 'SEU_PROJETO') sys.path.append(apache_configuration) sys.path.append(project) sys.path.insert(0, "/home/usuário/.virtualenvs/SEU_AMBIENTE_VIRTUAL/lib/python2.7/site-packages") os.environ['PYTHON_EGG_CACHE'] = '/home/usuário/apps_wsgi/.python-eggs' os.environ['DJANGO_SETTINGS_MODULE'] = 'SEU_PROJETO.settings' from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
Use o comando touch para “recarregar” seu projeto no seu servidor:
(djpy)-bash-4.1$ touch SEU_PROJETO.wsgi
A fim de que os arquivos JS e CSS da admin do Django sejam servidos corretamente, você deverá configurar o parâmetro STATIC_ROOT (settings.py):
STATIC_ROOT='/home/usuário/www/static' STATIC_URL='/static/'
Execute os comandos a seguir para coletar o conteúdo e recarregar a aplicação:
(djpy)-bash-4.1$ python manage.py collectstatic (djpy)-bash-4.1$ touch familia.wsgi
Agora envie seu projeto usando um cliente FTP para a pasta /apps_wsgi/SEU_PROJETO/
Depois, sempre execute os comandos a seguir para coletar arquivos estáticos necessários e para recarregar a aplicação (dentro do diretório /home/usuário/apps_wsgi):
(djpy)-bash-4.1$ python manage.py collectstatic (djpy)-bash-4.1$ touch SEU_PROJETO.wsgi
Lembre-se de sempre ativar o ambiente virtual desejado (para executar os comandos citados acima):
$ cd /home/usuário/apps_wsgi/ $ source .virtualenvs/NOME_DO_AMBIENTE_VIRTUAL/bin/activate
Referências: Suporte da Kinghost
https://gist.github.com/douglasmiranda/1232693
https://help.pythonanywhere.com/pages/VirtualEnvForNewerDjango
Rafael,
Eu cito a fonte, mas posso roubar essa tua postagem ? e compartilhar no meu blog ? http://webpy-br.blogspot.com.br
Ótimo tutorial, parabéns e muito obrigado!
Você tentou instalar o pacote “MySQL-python” via pip na máquina virtual? É que ele baixa o pacote, mas na hora de instalar dá pau porque ele precisa do GCC para compilar, porém precisa de acesso root.
Eu abri um chamado para o pessoal atualizar pra mim, eles fizeram uma migração de servidor e resolveu o problema.
Bom dia Rafael,
o que é a virtualenv na linha 3, aqui:
easy_install –install-dir=$PYTHONPATH virtualenv
É o nome da pata do seu projeto, da sua virtualenv previamente criada?
Estou habituado a utilizar ambientes virtuais, pip…
Mas estoou apanhando la King Host
Boa tarde,
Esse “virtualenv” é o nome do diretório que vai armazenar o conteúdo necessário pra executar o python, o pip e demais coisas. Pode criar com esse nome mesmo.