공유 서버에서 호스팅되는 Django 기반 웹 사이트 (예 : 제한된 계정 만 있고 관리자 권한 없음)를 실행하고 있습니다. 서버 관리자는 Python 2.7 용 Django 모듈을 설치했으나 지금은 장고 표백제라고 불리는 제 3 자 Django 라이브러리를 추가하려고합니다. 그래서 나는 지시 in the django-bleach documentation, 나는 settings.py
내 INSTALLED_APPS 목록에 '장고 - 표백제'을 추가 한 다음, 그 다음 Django가 로컬에 설치된 Python 모듈을 찾을 수 없습니다.
pip install --user django-bleach
을 사용하여 로컬로 설치되어 있어야합니다. 그러나, 내 코드를 다시로드하기 위해
wsgi.py
을 만졌을 때 Apache 로그에 ImportError가 있습니다. 보통 이것은 내가 가져 오려고하는 모듈이 PYTHONPATH에 없다는 것을 의미하므로
wsgi.py
에
print sys.path
문을 넣습니다. sys.path에 세 번 나타나는
/users/ejt64/.local/lib/python2.7/site-packages/
디렉토리, 장고 - 표백제가 설치되어있는 내 사용자 로컬 파이썬 위치입니다
[Mon Nov 24 13:44:58 2014] [error] sys.path is: ['/extra/www/html/quotes/quotes_django', '/opt/rh/python27/root/usr/lib64/python2.7/site-packages',
'/usr/lib64/python27.zip', '/usr/lib64/python2.7', '/usr/lib64/python2.7/plat-linux2', '/usr/lib64/python2.7/lib-tk', '/usr/lib64/python2.7/lib-old',
'/usr/lib64/python2.7/lib-dynload', '/usr/lib64/python2.7/site-packages', '/usr/lib/python2.7/site-packages', '/users/ejt64/.local/lib/python2.7/site-packages',
'/users/ejt64/.local/lib/python2.7/site-packages', '/users/ejt64/.local/lib/python2.7/site-packages']
[Mon Nov 24 13:44:58 2014] [error] mod_wsgi (pid=29372): Target WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py' cannot be loaded as Python module.
[Mon Nov 24 13:44:58 2014] [error] mod_wsgi (pid=29372): Exception occurred processing WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py'.
[Mon Nov 24 13:44:58 2014] [error] Traceback (most recent call last):
[Mon Nov 24 13:44:58 2014] [error] File "/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py", line 17, in <module>
[Mon Nov 24 13:44:58 2014] [error] application = get_wsgi_application()
[Mon Nov 24 13:44:58 2014] [error] File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application
[Mon Nov 24 13:44:58 2014] [error] django.setup()
[Mon Nov 24 13:44:58 2014] [error] File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/django/__init__.py", line 21, in setup
[Mon Nov 24 13:44:58 2014] [error] apps.populate(settings.INSTALLED_APPS)
[Mon Nov 24 13:44:58 2014] [error] File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/django/apps/registry.py", line 85, in populate
[Mon Nov 24 13:44:58 2014] [error] app_config = AppConfig.create(entry)
[Mon Nov 24 13:44:58 2014] [error] File "/opt/rh/python27/root/usr/lib64/python2.7/site-packages/django/apps/config.py", line 87, in create
[Mon Nov 24 13:44:58 2014] [error] module = import_module(entry)
[Mon Nov 24 13:44:58 2014] [error] File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
[Mon Nov 24 13:44:58 2014] [error] __import__(name)
[Mon Nov 24 13:44:58 2014] [error] ImportError: No module named django_bleach
참고 :이 발생하는 것입니다. 아파치 프로세스가 내 디렉토리에 접근하는 권한 문제를 일으키는 경우를 대비하여이 디렉토리를 세계에서 읽을 수있게 만들었습니다. 어떻게 ImportError를 얻을 수 있습니까?
난 그냥 내 장고 응용 프로그램 디렉토리에 파이썬을 실행하는 경우, 나는이 작업을 수행 할 수 있기 때문에,하지만 WSGI/장고, 함께 할 수있는 뭔가가 있어야합니다 :
Python 2.7.5 (default, Dec 3 2013, 08:35:16)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import django_bleach
>>>
을하지만 내 장고 응용 프로그램을 어떻게 든 찾을 수 없습니다 django_bleach 모듈은 올바른 위치에서보고있다.
추가 정보 :
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "quotes_django.settings")
import sys
print >>sys.stderr, "sys.path is: " + str(sys.path)
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
'--user'를 사용하여 설치하지 않는 것은 무엇입니까? – iamkhush
귀하의 의견이 무엇을 의미하는지 모르겠습니다. 이 서버에서 root/sudo 권한이 없기 때문에'--user'를 사용하여 django-bleach를 설치해야합니다. – Edward
'wsgi' 파일은 어떻게 생겼습니까? Python 버전을 거기에 매핑 할 수 있습니다. –