1

virtualenvを使用してdjangoアプリをデプロイしようとしていますが、Linuxのエキスパートユーザーではありません。

共有ホスト上にあります。pythonと入力すると、python2.4コンソールが表示されます。タイプpython2.7の場合、2.7コンソールを入手しました。

2.7を使いたい。

  1. プライベート.site-packagesにsetuptoolsを使用してvirtualenvをインストールしました。
  2. python 2.7を使用してenvを作成しました:.site-packages / virtualenv --no-site-packages -p python2.7 env
  3. envをアクティブにして、必要なパッケージをインストールしました。
  4. .wsgiをenvを使用するように構成(試行)しました

手順4で2日が経過しました。サーバーには、sys.path上にいくつかのモジュールが事前にインストールされています。たとえば、djangoがインストールされていますが、virtualenvにインストールされているモジュールを使用したいと思います。

私はいくつかのwsgiドキュメントを読み、これに到達しました。

import sys, os, site

sys.stdout = sys.stderr

os.environ['PYTHON_EGG_CACHE'] = '/home/bruddennautica/apps_wsgi/.python-eggs'
os.environ['DJANGO_SETTINGS_MODULE'] = "brudden.settings"

sys.path.append('/home/bruddennautica/apps_wsgi')
sys.path.append('/home/bruddennautica/apps_wsgi/env/lib/python2.7/site-packages')

activate_this = '/home/bruddennautica/apps_wsgi/env/bin/activate_this.py'
execfile(activate_this, dict(__file__=activate_this))

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

このconfで、いくつかのことを示すdjangoエラーが発生しました。djangoエラーは重要ではありません。これは、djangoのバージョンがvirtualenvにインストールしたバージョン、つまりpythonのバージョンと同じではないために発生します。

印刷:http ://dl.dropbox.com/u/9290581/error.png

Pythonパスエントリを表示することは可能ですが、それらのほとんどはvirtualenvからのものではありません。1つ目は/home/bruddennautica/apps_wsgi/env/lib/python2.4/site-packagesです。ただし、このフォルダは存在しません。どうやらそれは22行目のactivate_this.pyによって追加されています:

site_packages = os.path.join(base, 'lib', 'python%s' % sys.version[:3], 'site-packages')

誰でも私を助けることができますか?

ありがとう

4

1 に答える 1

1

mod_wsgi が Python 2.4 用にコンパイルされている場合、Python 2.7 は使用できません。Python 2.7 を使用して構築された仮想環境で mod_wsgi を指すことさえできません。唯一の選択肢は、mod_wsgi に対してコンパイルされた mod_wsgi をインストールすることです。利用可能な場合はバイナリ ディストリビューション パッケージから、または正しい Python バージョンに対して自分でソース コードから mod_wsgi をコンパイルすることによってインストールします。

現在、Python のバージョンを混在させている可能性がありますが、これを行うことはできず、クラッシュなどのエラーが発生します。mod_wsgi がコンパイルされた Python のバージョンを確認する必要があります。

見る:

http://code.google.com/p/modwsgi/wiki/CheckingYourInstallation#Python_Shared_Library

これを見つける1つの方法。

于 2012-05-16T03:04:42.753 に答える