파이썬 명령 줄을 직접 사용하면 잘 동작하는 Flask-Web-App을 개발했습니다. 그러나 mod-wsgi로 Apache2에 배포하면 내부 모듈을 가져올 수 없습니다. 관련 게시물을 모두 읽었지만 아직 문제를 파악할 수 없습니다. 먼저 아래에서 모두 시도했습니다.내 Apache WSGI Flask web-app가 내부 파이썬 모듈을 가져올 수 없습니다.
1 - 응용 프로그램 폴더 아래의 모든 파일과 하위 폴더가 www-data ("Apache2 서비스 계정")에 대해 rwx 권한을 가지고 있는지 확인했습니다.
2 - WSGIPythonPath/var/www/FlaskApp/FlaskApp/Base/:/var/www/FlaskApp/FlaskApp/Base/Form/:/var/www/FlaskApp/FlaskApp/Base/Model/(아래 참조)
3 - wsgi 스크립트의 sys.path 변수에 대한 모듈 경로를 추가했습니다.
# internal imports
import Base.Model as Model
from Base import Constant as cnst
from Base.Form import UserRegistrationForm, ProductForm
.
.
.
if __name__ == "__main__":
app.run()
난 그냥 내가 가능성이 놓친 것 다른 어떤 다른 생각을 가지고하지 않습니다
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApp/")
sys.path.append('/var/www/FlaskApp/FlaskApp/Base/')
sys.path.append('/var/www/FlaskApp/FlaskApp/Base/Form/')
sys.path.append('/var/www/FlaskApp/FlaskApp/Base/Model/')
from FlaskApp import app as application
application.secret_key = 'as345kj34h5kljj34sy'
내 모든 내부 수입은 초기화에 아래와 같이 응용 프로그램을 시작 평이다. 파이썬 인터프리터를 명령 행에서 사용할 때 모든 것은 잘 작동합니다.
도움을 주시면 감사하겠습니다.
감사합니다, 메디/마이크
하는 error.log
[Fri Sep 09 22:59:43.068802 2016] [mpm_event:notice] [pid 10719:tid 139878768617344] AH00489: Apache/2.4.7 (Ubuntu) mod_wsgi/3.4 Python/2.7.6 configured -- resuming normal operations
[Fri Sep 09 22:59:43.068872 2016] [core:notice] [pid 10719:tid 139878768617344] AH00094: Command line: '/usr/sbin/apache2'
[Fri Sep 09 22:59:47.926252 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] mod_wsgi (pid=10720): Target WSGI script '/var/www/FlaskApp/flaskapp.wsgi' cannot be loaded as Python module.
[Fri Sep 09 22:59:47.926300 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] mod_wsgi (pid=10720): Exception occurred processing WSGI script '/var/www/FlaskApp/flaskapp.wsgi'.
[Fri Sep 09 22:59:47.926325 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] Traceback (most recent call last):
[Fri Sep 09 22:59:47.926343 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] File "/var/www/FlaskApp/flaskapp.wsgi", line 10, in <module>
[Fri Sep 09 22:59:47.926403 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] from FlaskApp import app as application
[Fri Sep 09 22:59:47.926414 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] File "/var/www/FlaskApp/FlaskApp/__init__.py", line 22, in <module>
[Fri Sep 09 22:59:47.926848 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] from Base.Form import UserRegistrationForm, ProductForm
[Fri Sep 09 22:59:47.926889 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] File "/var/www/FlaskApp/FlaskApp/Base/Form/__init__.py", line 1, in <module>
[Fri Sep 09 22:59:47.926975 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] from UserRegistrationForm import UserRegistrationForm
[Fri Sep 09 22:59:47.927007 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] File "/var/www/FlaskApp/FlaskApp/Base/Form/UserRegistrationForm.py", line 2, in <module>
[Fri Sep 09 22:59:47.927098 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] from Base.Model import db_session, User
[Fri Sep 09 22:59:47.927156 2016] [:error] [pid 10720:tid 139878671300352] [client ::1:55866] ImportError: No module named Base.Model
flaskapp.wsgi
#!/usr/bin/python
import sys
import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0,"/var/www/FlaskApp/")
sys.path.append('/var/www/FlaskApp/FlaskApp/Base/')
sys.path.append('/var/www/FlaskApp/FlaskApp/Base/Form/')
sys.path.append('/var/www/FlaskApp/FlaskApp/Base/Model/')
from FlaskApp import app as application
application.secret_key = 'as345kj34h5kljj34sy'
FlaskApp.conf
,536,913 대신 63,210WSGIPythonPath /var/www/FlaskApp/FlaskApp/Base/:/var/www/FlaskApp/FlaskApp/Base/Form/:/var/www/FlaskApp/FlaskApp/Base/Model/
<VirtualHost *:80>
ServerName localhost
ServerAdmin [email protected]
WSGIScriptAlias//var/www/FlaskApp/flaskapp.wsgi
<Directory /var/www/FlaskApp/FlaskApp/>
Order allow,deny
Allow from all
</Directory>
Alias /static /var/www/FlaskApp/FlaskApp/static
<Directory /var/www/FlaskApp/FlaskApp/static/>
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
고급 수준의 댓글 :) 나는 그것의 모든 세부 사항을 이해하기 위해 언젠가는 많이 걸릴 것입니다. 하지만 지금은 DB 액세스 스레딩 문제가 발생한 것 같습니다. 분명히 sqlite3는 멀티 스레딩과 호환되지 않습니다. 여기에 오류 로그가 있습니다. [Sat Sep 10 02 : 09 : 17.767883 2016] [: 오류] [pid 11618 : tid 140582090196736] ProgrammingError : (sqlite3.ProgrammingError) 스레드에서 생성 된 SQLite 객체는 같은 스레드에서만 사용할 수 있습니다. 객체는 스레드 id 140582190909184 이것은 스레드 ID입니다. 140582090196736 – user1941390
수정 해 주셔서 감사합니다. 그리고 내 대답은 [여기] (http://stackoverflow.com/questions/34009296/using-sqlalchemy-session-from-flask-raises-sqlite-objects-created-in-a-thread-c)를 찾았습니다. – user1941390