Flask wsgi python Import Error: no module named catalog

Flask wsgi python Import Error: no module named catalog

我一直在按照 DigitalOcean and Flask 的教程设置一个在 ubuntu amazon lightsail 上运行的 flask wsgi python 应用程序,但我收到以下错误:

错误

[Tue Jul 25 16:09:14.573839 2017] [wsgi:error] [pid 19081:tid 140056986322688] [remote 65.102.85.13:26759]     from catalog import app as application
[Tue Jul 25 16:09:14.573903 2017] [wsgi:error] [pid 19081:tid 140056986322688] [remote 65.102.85.13:26759] ImportError: No module named catalog
[Tue Jul 25 18:11:00.019707 2017] [wsgi:error] [pid 19082:tid 140056977929984] [client 91.196.50.33:42031] Target WSGI script not found or unable to stat: /var/

这是我当前的文件结构

root@:/var/www/catalog# ls -la
total 24
drwxr-xr-x  .
drwxr-xr-x  ..
drwxr-xr-x  catalog
drwxr-xr-x  catalog.egg-info
-rw-r--r--  catalog.wsgi
-rw-r--r--  setup.py

root@:/var/www/catalog/catalog# ls -la
total 120
drwxr-xr-x .
drwxr-xr-x ..
-rw-r--r-- 1 client_secrets.json
-rw-r--r-- 1 database_setup.py
-rw-r--r-- 1 fb_client_secrets.json
drwxr-xr-x 8 .git
-rw-r--r-- 1 lotsofmenus.py
-rw-r--r-- 1 lotsofmenususers.py
-rw-r--r-- 1 README.md
-rw-r--r-- 1 restaurant_menu_app.py
-rw-r--r-- 1 restaurantmenu.db
-rw-r--r-- 1 restaurantmenuwithusers.db
drwxr-xr-x 4 static
drwxr-xr-x 2 templates
drwxr-xr-x 6 venv

我的 python.wsgi 文件 导入系统

import logging
logging.basicConfig(stream=sys.stderr)
sys.path.insert(0, "/var/www/catalog")

from catalog import app as application
application.secret_key = 'super_secret_key'

我的/etc/apache2/sites-enabled/catalog.config

<VirtualHost *:80>
    ServerName 52.34.254.190
    ServerAlias ec2-52-34-254-190.us-west-2.compute.amazonaws.com
    ServerAdmin admin@52.34.254.190
    WSGIDaemonProcess catalog python-path=/var/www/catalog:/var/www/catalog/venv/lib/python2.7/site-packages
    WSGIProcessGroup catalog
    WSGIScriptAlias / /var/www/catalog/catalog.wsgi
    <Directory /var/www/catalog/catalog/>
        Order allow,deny
        Allow from all
    </Directory>
        Alias /static /var/www/catalog/catalog/static
    <Directory /var/www/catalog/catalog/static/>
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我的setup.py文件

from setuptools import setup

setup(
    name='catalog',
    packages=['catalog'],
    include_package_data=True,
    install_requires=[
        'flask',
    ],
)

我可以获得我的虚拟环境 运行,但是我的浏览器 IP 仍然出现 500 内部服务器错误。我不明白为什么找不到模块,发生了什么?

通过将主应用程序文件更改为 __init__.py

解决了这个问题