web-dev-qa-db-ja.com

設定をインポートできませんでした 'myproject.settings'(sys.pathにありますか?):pinaxという名前のモジュールがありません

私はpinaxをWebFactionで動作させようとしていて、非常に多くの問題を抱えています...

[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] mod_wsgi (pid=22796): Exception occurred processing WSGI script '/home/pawesome/webapps/qtsocial/myproject.wsgi'.
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/Django/core/handlers/wsgi.py", line 250, in __call__
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     self.load_middleware()
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/Django/core/handlers/base.py", line 39, in load_middleware
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     for middleware_path in settings.MIDDLEWARE_CLASSES:
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/Django/utils/functional.py", line 276, in __getattr__
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     self._setup()
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/Django/conf/__init__.py", line 42, in _setup
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     self._wrapped = Settings(settings_module)
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/Django/conf/__init__.py", line 89, in __init__
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1]     raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
[Sun Feb 19 20:01:20 2012] [error] [client 127.0.0.1] ImportError: Could not import settings 'myproject.settings' (Is it on sys.path?): No module named pinax

Wsgi:

import os
import sys

from Django.core.handlers.wsgi import WSGIHandler

os.environ['Django_SETTINGS_MODULE'] = 'myproject.settings'
application = WSGIHandler()

Wsgiはmyprojectと同じフォルダーにあり、settings.pyは間違いなくmyprojectにあります。では、何が得られるのでしょうか?

編集:

さて、私はこことwebfactionからアドバイスを受けましたが、wsgiは次のようになりました...

import os
import sys
from site import addsitedir
from Django.core.handlers.wsgi import WSGIHandler

os.environ['Django_SETTINGS_MODULE'] = 'myproject.settings'
sys.path.append('/home/pawesome/webapps/qtsocial/myproject')
sys.path.append('/home/pawesome/webapps/qtsocial')

addsitedir('/home/pawesome/envs/pinax072/lib/python2.6/site-packages')
application = WSGIHandler()

私はこれが何かを解決したと思いますが、すべてではありません...今私は得ています...

[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] mod_wsgi (pid=15572): Exception occurred processing WSGI script '/home/pawesome/webapps/qtsocial/myproject.wsgi'.
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] Traceback (most recent call last):
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/Django/core/handlers/wsgi.py", line 250, in __call__
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]     self.load_middleware()
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]   File "/home/pawesome/webapps/qtsocial/lib/python2.6/Django/core/handlers/base.py", line 47, in load_middleware
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1]     raise exceptions.ImproperlyConfigured('Error importing middleware %s: "%s"' % (mw_module, e))
[Sun Feb 19 20:00:28 2012] [error] [client 127.0.0.1] ImproperlyConfigured: Error importing middleware Django_openid.consumer: "No module named voting_extras"

みんなありがとう... WebFactionの人たちは最近あきらめて、私はすでに笑っていたのにここに来るように言った

9
milktrey

2つの問題がありました、

  1. Virtualenvは、これらの行で〜/ Apache2/bin/startにロードする必要があります。

    WORKON_HOME=/home/pawesome/envs/pinax072/ . $WORKON_HOME/bin/activate

  2. Pinaxには必要なカスタムパスコードがあるため、インストーラーが提供するものではなく、pinaxが提供するwsgiファイルを使用する必要があります。

    #WSGIScriptAlias / /home/pawesome/webapps/qtsocial/myproject.wsgiWSGIScriptAlias / /home/pawesome/webapps/qtsocial/myproject/deploy/pinax.wsgi

3
milktrey

ターミナルで、settings.pyを含むディレクトリにcdして、実行します。

python settings.py

簡単に修正できるインポートエラー(入力エラーまたは構文エラー)が発生する場合があります。

17
Pstrazzulla

そのフォルダをPYTHONPATHに明示的に追加しようとしましたか?また、プロジェクトフォルダと親フォルダの両方を追加する必要がある場合もあります。プロジェクトのパスを使用して、次の行をwsgiファイルに追加します。

_sys.path.append('/explicit/path/to/myproject')
sys.path.append('/explicit/path/to')
_

P.S. application = WSGIHandler()lineの前にそれを行います。

Updatethis によると、新しいエラーの原因は同じようです。 「voting_extras」アプリがどこにあるか、およびその親フォルダーがPYTHONPATHに存在するかどうかを再確認してください。

11
mgibsonbr

PYTHONPATHに自分のものを追加する必要があると思います。プロジェクトを追加すると、それはvirtualenvです。これは、プロジェクトごとにwsgiがどのように見えるかのサンプルです。

import sys
import site
import os

envpath = '/development/myproject/env/lib/python2.7/site-packages'

# we add currently directory to path and change to it
pwd = os.path.dirname(os.path.abspath(__file__))
os.chdir(pwd)
sys.path = [pwd] + sys.path

# Append paths
site.addsitedir(envpath)

# now start Django
from Django.core.handlers.wsgi import WSGIHandler
os.environ['Django_SETTINGS_MODULE'] = 'settings'
application = WSGIHandler()
8
darren

これによると https://docs.djangoproject.com/en/1.5/howto/deployment/wsgi/modwsgi/#using-a-virtualenv サイトパッケージにパスを追加するだけでpython Apache構成またはサイト構成のsite-packagesディレクトリ(VirtualHostディレクティブの外部)

WSGIPythonPath /path/to/mysite.com:/path/to/your/venv/lib/python2.X/site-packages

私にとって、それは:

WSGIPythonPath /var/www/djtest:/usr/local/lib/python2.7/site-packages

0
Artem Eltyshev

同様の問題が発生しました。私の場合、トップレベルのconfigフォルダーがあり、そこに一般的なsettings.pyファイルがありました。 myprojectフォルダーに、インポートしようとする2番目の設定がありましたconfig.settingsファイル。

私の場合、問題はpythonがトップレベルのconfigではなくmyproject.configフォルダーを探していたということでした。

    # project structure
    config/
        settings.py
        constans.py
    myproject/
        config/
            constants.py
        settings.py
        manage.py
        urls.py

エラー:ImportError:設定をインポートできませんでした 'myproject.settings'(sys.pathにありますか?):settingsという名前のモジュールがありません

解決策myproject/configフォルダーを削除/移動しました。

0
Iulian Stana