2017-05-13 1 views
-1

병과 아파치로 파이썬 3.5를 사용하고 싶습니다.ImportError : 병이라는 모듈이 없습니다. Python3.5.1

하지만 브라우저에서 adapter.wsgi에 액세스 할 때,

Internal Server Error

▼의 error_log

[error] ImportError: No module named os

[error] ImportError: No module named bottle


응용 프로그램

▼ 사용하여/etc/httpd/conf. d/wsgi.conf

LoadModule wsgi_module modules/mod_wsgi.so 

WSGIPythonHome /opt/rh/rh-python35/root/usr/bin/python3 

<FilesMatch \.wsgi$> 
    SetHandler wsgi-script 
    Options +ExecCGI 
</FilesMatch> 

<FilesMatch \.py$> 
    SetHandler wsgi-script 
    Options +ExecCGI 
</FilesMatch> 

▼ adapter.wsgi

# -*- coding:utf-8 -*- 
import sys, os 
dirpath = os.path.dirname(os.path.abspath(__file__)) 
sys.path.append(dirpath) 
os.chdir(dirpath) 
import bottle 
import index 
application = bottle.default_app() 

▼ index.py

# -*- coding:utf-8 -*- 
from bottle import route, run, template 
from bottle import TEMPLATE_PATH 

@route('/') 
def index(): 
    return "HELLO WORLD!" 

if __name__ == '__main__': 
    run(host='hogetest.com', port=80, debug=True, reloader=True) 

현재 상황

$ python -V  

Python 3.5.1

$ which python 

alias python='/opt/rh/rh-python35/root/usr/bin/python3'

/opt/rh/rh-python35/root/usr/bin/python3 
+0

을 그래서 당신은 당신이 또는 어떻게 ImportError를 해결하는 방법을 사용하지 않기 때문에 파이썬 2.6.6을 삭제하는 방법을 물어? 또한 파이썬 2.6.6이 있고 파이썬 3 모듈을 사용하고 싶다면 중요하지 않습니다. 중요한 것은 파이썬 인터프리터가 사용하는 것입니다. – Daniel

+0

사전 설치된 시스템 인 Python 2.6을 제거하고 싶지는 않습니다. * 잘 * 문제가 있습니다. – abccd

+0

파이썬 3 모듈을 사용하고 싶습니다. 이 오류를 어떻게 해결할 수 있습니까? – re1

답변

1

을 발생하는 경우 처음에 sudo을 사용할 수 있습니다

alias python='/usr/bin/python3' 

모든 파이썬 관련 작업에 대한 기본값으로 python3를 사용하는 터미널에서이 명령을 귀하의 WSGIPythonHome 지시어는 처음부터 잘못되었습니다. 대신 사용하십시오 :

WSGIPythonHome /opt/rh/rh-python35/root/usr 

인수는 sys.prefix 파이썬 설치에 대한 내용과 동일해야합니다.

SCL Python 버전을 사용하면 다른 복잡성이 발생할 수 있습니다.

그 혼자 작업하지 않는 경우, 파이썬 공유 라이브러리에 대한 .so의 전체 경로가 사용 무엇인지 알아 :

LoadFile /opt/rh/rh-python35/root/usr/lib/libpython3.5.so 
LoadModule wsgi_module modules/mod_wsgi.so 
WSGIPythonHome /opt/rh/rh-python35/root/usr 

변경 LoadFile 지시어가 일치하는 것을 공유의 전체 경로 실제로 도서관이있었습니다. 대신 libpython3.5m.so이라는 이름을 사용할 수 있습니다.

mod_wsgi.so 파일의 위치에 따라 작동하지 않을 수도 있습니다. 그것이 시스템 mod_wsgi 패키지에서 나온 것이라면 SCL Python 버전에 대해 컴파일되지 않습니다. 이 경우 시스템 mod_wsgi 패키지를 제거하고 소스 코드에서 pip install 메서드를 사용하여 mod_wsgi을 직접 컴파일 한 다음 mod_wsgi-express module-config이 제공하는 구성을 사용하여 컴파일해야합니다.참조 :

+0

답변을 시도했지만 오류 "대상 WSGI 스크립트를 Python 모듈로로드 할 수 없습니다." 마지막으로 모든 것을 다시하고, make python 3.6을 성공적으로 설치했다. – re1

1

사용 권한 오류가

+0

감사합니다. .bashrc를 만들었습니다. – re1

+0

당신은 환영합니다. – Exprator

관련 문제