Dreamhost是一個很棒的小項目主機。這也是Django友好的託管。除python和Django版本之外的所有東西都已經過時了。那麼這是一整天的工作來弄清楚如何更新Python 2.7.3,Django 1.4上的dreamhost,我真的想與誰分享更新新的Django和Python 2.7。*與Dreamhost上的virtualenv(帶有乘客)
回答
我目前有私人服務器,一個shell帳戶和一點運氣。因此,這裏是我做的:
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
配置系統使用我們的新的Python。開放的〜/ .bashrc,並添加下面一行
export PATH="$HOME/Python27/bin:$PATH" export LD_LIBRARY_PATH=$HOME/Python27/lib #save it and run source ~/.bashrc
你現在可以
which python
檢查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
你也可以添加ENV路徑
bashrc
export PATH="$HOME/<site>/env/bin/:$PATH" source ~/.bashrc
安裝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()
最後兩行
- 享受:d
Dreamhost上蟒新版本將不再返回sys.executable
所以你這是我的版本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'
))
目前Dreamhost的更新服務器到Ubuntu 12.04,和我有一個錯誤:
Import Error: <path-to-python>/_io.so undefined symbol: PyUnicodeUCS2_Decode
編譯自定義python並運行「python ez_setup」後編譯爲
。PY」
的解決方案是編譯--enable-unicode的= UCS4蟒蛇在步驟1
./configure --enable-shared --prefix=$HOME/Python27 --enable-unicode=ucs4
謝謝。我應該更新我的答案 –
*不知道*也應該說,當前默認的python版本在「快樂託管」== 2.7.3,但Django仍舊舊,所以我使用你的步驟來創建virtualenv。它工作正常!謝謝! –
- 1. 機架/乘客Dreamhost上
- 2. Django:與Dreamhost上的乘客500內部服務器錯誤
- 3. 更新Python virtualenv?
- 4. Dreamhost上的Django與乘客:沒有迴應瀏覽器,沒有錯誤
- 5. dreamhost python3 Django乘客設置導入Cookie
- 6. 使用乘客在Dreamhost上做Django教程的問題
- 7. 如何在virtualenv中安裝Django python 2.7
- 8. 的Python:設置的virtualenv和項目2.7
- 9. 在Dreamhost上使用Virtualenv和Web.py
- 10. Python 2.6更新至2.7
- 11. 的virtualenv新的Python和老包集合
- 12. 更新!: Tkinter的Python 2.7版的問題
- 13. 更新後的Rails Phusion乘客錯誤
- 14. 如何更新Canopy的Python 2.7
- 15. 如何更新Ubuntu上的virtualenv?
- 16. 乘客運行燒瓶站點Dreamhost上返回500錯誤
- 17. python django:爲每個django項目創建一個新的virtualenv?
- 18. 在osx上的新行命令python 2.7
- 19. 如何使用Spark和Python更新HDP 2.2中的python 2.7
- 20. 更新到Rails 3.1.0.rc5後,帶nginx的乘客有間歇性502錯誤
- 21. Django與django-filer上的virtualenv失敗
- 22. Python 2.7中的舊式和新式類?
- 23. Python 2.7與Python 3.3的Django開發
- 24. Dreamhost上的SOAP客戶端
- 25. python virtualenv更新模塊錯誤
- 26. 的Python 2.7下的virtualenv:破`site.py`
- 27. 的virtualenv在Python 2.7,Ubuntu的10.04
- 28. 如何在沒有編譯的窗口上在python 2.7 virtualenv上安裝python-ldap
- 29. 在Ubuntu中更新現有virtualenv中的python版本
- 30. 將現有的virtualenv更新爲使用Python 3.6
尼斯指導,感謝分享。 –
這將是巨大的,如果有人能寫自動化腳本 –
我們(0,'$ HOME//env/project') 正在獲取導入您的passenger_wsgi.py文件時發生錯誤,即使在/ project後面也沒有創建任何項目目錄) –