python 烧瓶应用程序 mod_wsgi/apache

python flask app mod_wsgi/apache

我正在努力在我的 linode 服务器上安装我的 python flask 应用程序。我已经按照一些教程进行了此配置,但卡住了,因为当我访问 url 时,出现此错误。 "ImportError: No module named ugpromo"。我在 Whosebug 上看到过类似的其他问题,并尝试了他们的解决方案,但我仍然遇到同样的错误。

wsgi 文件

import sys                                                                                                              
import logging                                                                                                          
logging.basicConfig(stream=sys.stderr)                                                                                  
sys.path.insert(0,"/var/www/html/codingbybrandon/public_html/ugpromo/")                                                                                                                                                                         
from ugpromo import app as application                                                                                  
application.secret_key = 'Add your secret key'

init.py

from flask import Flask                                                                                                 
app = Flask(__name__)                                                                                                   
@app.route("/")                                                                                                         
def hello():                                                                                                                
  return "Hello, I love Digital Ocean!"                                                                               
if __name__ == "__main__":                                                                                                      
  app.run() 

虚拟主机文件

<VirtualHost *:80>                                                                                                              
ServerName ugpromo.codingbybrandon.com                                                                                  
ServerAdmin admin@codingbybrandon.com                                                                                   
ServerAlias www.ugpromo.codingbybrandon.com                                                                             
WSGIScriptAlias / 
/var/www/html/codingbybrandon.com/public_html/ugpromo/ugpromo.wsgi                                                                                                                                                                                                                                                                                                                                  
   <Directory /var/www/html/codingbybrandon/public_html/ugpromo/ugpromo/>                                                         
 Order allow,deny                                                                                                         
 Allow from all                                                                                                  
   </Directory>                                                                                                                                                          
   Alias /static 
  /var/www/codingbybrandon.com/public_html/ugpromo/ugpromo/static                                            
   <Directory 
    /var/www/codingbybrandon.com/public_html/ugpromo/ugpromo/static/>                                                    
     Order allow,deny                                                                                                        
     Allow from all                                                                                                  
 </Directory>                                                                                                            
   ErrorLog ${APACHE_LOG_DIR}/error.log                                                                                    
   LogLevel warn                                                                                                           
   CustomLog ${APACHE_LOG_DIR}/access.log combined                                                                 
 </VirtualHost>

目录列表如下

public_html
  ugpromo
    __init__.py
    ugpromo
      static
      templates
      ugp
   ugpromo.wsgi

您已将外部 "ugpromo" 目录(包含您要导入的 __init__ 文件的目录)添加到 sys.path。您需要添加该目录的 parent

sys.path.insert(0,"/var/www/html/codingbybrandon/public_html/")

(但是请注意,您真的不应该将代码放在 public_html 下。将它放在其他地方。)