ड्रीमहोस्ट छोटी परियोजना के लिए एक महान मेजबान है। और यह Django दोस्ताना होस्टिंग भी है। अजगर और Django संस्करण को छोड़कर सब कुछ अच्छा है तारीख से थोड़ा सा है। वैसे यह यह जानने के लिए काम का एक पूरा दिन है कि पाइथन 2.7.3, डैंगो 1.4 को सपनेहॉस्ट पर कैसे अपडेट करें और मैं वास्तव में इसे ढूंढने के साथ साझा करना चाहता हूंनया डीजेगो और पायथन 2.7 अपडेट करें। * ड्रीमहोस्ट (यात्री के साथ) वर्चुअलएन्व के साथ
उत्तर
मेरे पास वर्तमान में निजी सर्वर, एक खोल खाता और कुछ भाग्य है । तो यहाँ मैं क्या कर रहा है: अपने होस्ट को
SSH अजगर
cd ~ mkdir tmp cd tmp wget http://www.python.org/ftp/python/2.7.3/Python-2.7.3.tgz tar zxvf Python-2.7.3.tgz cd Python-2.7.3 ./configure --enable-shared --prefix=$HOME/Python27 --enable-unicode=ucs4 make make install
कॉन्फ़िगर प्रणाली हमारे नए अजगर का उपयोग करने के उन्नयन के लिए। ओपन ~/.bashrc और निम्न पंक्ति
export PATH="$HOME/Python27/bin:$PATH" export LD_LIBRARY_PATH=$HOME/Python27/lib #save it and run source ~/.bashrc
आप अब
which python
के साथ अपने अजगर संस्करण की जांच कर सकते हैं जोड़ने के
easy_install
स्थापित करें,pip
cd ~/tmp wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py easy_install pip # Or even shorter wget https://bootstrap.pypa.io/get-pip.py python get-pip.py
स्थापित
virtualenv
pip install virtualenv virtualenv $HOME/<site>/env #Switch to virtualenv source $HOME/<site>/env/bin/activate
आप भी
bashrc
export PATH="$HOME/<site>/env/bin/:$PATH" source ~/.bashrc
को env पथ में जोड़ सकते हैं Django और बाकी
pip install django pip install .... pip install .... pip install ....
सब कुछ प्रोजेक्ट बना स्थापित सामग्री
निम्नलिखित के साथcd $HOME/<site>/ python $HOME/<site>/env/bin/django-admin.py startproject project
HOME/<site>/
मेंpassenger_wsgi.py
बनाएंimport sys, os cwd = os.getcwd() sys.path.append(cwd) sys.path.append(cwd + '/project') #You must add your project here or 500 #Switch to new python #You may try to replace $HOME with your actual path if sys.version < "2.7.3": os.execl("$HOME/<site>/env/bin/python", "python2.7.3", *sys.argv) sys.path.insert(0,'$HOME/<site>/env/bin') sys.path.insert(0,'$HOME/<site>/env/lib/python2.7/site-packages/django') sys.path.insert(0,'$HOME/<site>/env/lib/python2.7/site-packages') os.environ['DJANGO_SETTINGS_MODULE'] = "project.settings" import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
या इस तरह
import sys, os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
sys.path.append(os.path.join(BASE_DIR)) #You must add your project here or 500
#Switch to new python
#You may try to replace $HOME with your actual path
PYTHON_PATH = os.path.join(BASE_DIR, 'env', 'bin', 'python')
if sys.executable != PYTHON_PATH:
os.execl(PYTHON_PATH, "python2.7.12", *sys.argv)
आप Django 1.7 का उपयोग कर रहे हैं, तो
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
और पिछले दो लाइन की जगह
- का आनंद लें: डी
अब वापस आ जाएगी
sys.executable
Dreamhost पर अजगर की
नया संस्करण ताकि आप इस passenger_wsgi की मेरी संस्करण
import sys, os
VIRTUAL_ENV_PYTHON = 'venv-python' # Python > 2.7.6 dreamhost not return sys.executable
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
def is_venv_python():
if len(sys.argv) > 0:
last_item = sys.argv[len(sys.argv)-1]
if last_item == VIRTUAL_ENV_PYTHON:
return True
return False
sys.path.append(os.path.join(BASE_DIR)) #You must add your project here or 500
#Switch to new python
PYTHON_PATH = os.path.join(BASE_DIR, 'env', 'bin', 'python')
if not is_venv_python():
os.execl(PYTHON_PATH, "python2.7.12", *sys.argv + [VIRTUAL_ENV_PYTHON])
sys.path.insert(0, os.path.join(BASE_DIR, 'env', 'bin'))
sys.path.insert(0, os.path.join(
BASE_DIR, 'env', 'lib', 'python2.7', 'site-packages'
))
Ubuntu 12.04 करने के लिए
वर्तमान में Dreamhost अद्यतन सर्वर है, और मैं एक त्रुटि मिल गया है:
Import Error: <path-to-python>/_io.so undefined symbol: PyUnicodeUCS2_Decode
कस्टम पायथन संकलित करने और "पायथन ez_setup" चलाने के बाद
।py "
समाधान कदम पर --enable-यूनिकोड = ucs4 साथ अजगर संकलित करने के लिए 1
./configure --enable-shared --prefix=$HOME/Python27 --enable-unicode=ucs4
धन्यवाद। मैं अपने जवाब –
अद्यतन करना चाहिए * नहीं पता * यह भी कहा जाना चाहिए, "खुश होस्टिंग" == 2.7.3, लेकिन Django पर कि वर्तमान डिफ़ॉल्ट अजगर संस्करण अभी भी पुरानी है, इसलिए मैं virtualenv बनाने के लिए अपने चरणों का उपयोग करें। यह बढ़िया काम करता है! धन्यवाद! –
अच्छा गाइड था, साझा करने के लिए धन्यवाद। –
यह बहुत अच्छा होगा अगर किसी को एक स्वचालन स्क्रिप्ट –
लिख सकते हैं हम env के अंदर कोई प्रोजेक्ट निर्देशिका नहीं बनाई है, क्या हमने? sys.path.insert (0, '$ HOME//env/project') प्राप्त करने से आपके पास यात्री/wsgi.py को आयात करने के बाद भी एक त्रुटि हुई) –