Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Heroku上的Flask配置导入失败_Python_Heroku_Flask - Fatal编程技术网

Python Heroku上的Flask配置导入失败

Python Heroku上的Flask配置导入失败,python,heroku,flask,Python,Heroku,Flask,我的应用程序在本地运行时运行良好(使用flask run),当注释掉app.config.from_对象(config.DevelopmentConfig)时,它也可以在Heroku上运行。但是,gunicorn在Heroku上部署时找不到配置文件。(我无法在Windows计算机上本地尝试gunicorn。) __初始值 程序文件 目录结构 我的config.py是项目根目录,尽管我在app目录中添加了一个副本,但没有任何效果 /ProjectRoot config.py /app

我的应用程序在本地运行时运行良好(使用
flask run
),当注释掉
app.config.from_对象(config.DevelopmentConfig)
时,它也可以在Heroku上运行。但是,gunicorn在Heroku上部署时找不到配置文件。(我无法在Windows计算机上本地尝试gunicorn。)

__初始值 程序文件 目录结构 我的
config.py
是项目根目录,尽管我在
app
目录中添加了一个副本,但没有任何效果

/ProjectRoot
  config.py
  /app
    __init.py__
    views.py
    /static
    /templates
希罗库日志 已删除时间戳的错误日志:

: [2016-08-23 01:18:51 +0000] [9] [INFO] Worker exiting (pid: 9)
:
: Original exception:
:
: Process exited with status 3
:     self.wsgi = self.app.wsgi()
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
:     self.callable = self.load()
:     self.load_wsgi()
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi
:     worker.init_process()
: [2016-08-23 01:18:51 +0000] [10] [ERROR] Exception in worker process
: Traceback (most recent call last):
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
: ImportStringError: import_string() failed for 'config.DevelopmentConfig'. Possible reasons are:
:
:   File "/app/.heroku/python/lib/python2.7/site-packages/werkzeug/utils.py", line 443, in import_string
:     obj = import_string(obj)
: State changed from starting to up
:     app.config.from_object('config.DevelopmentConfig')
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
:     return self.load_wsgiapp()
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
:     return util.import_app(self.app_uri)
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app
:     __import__(module)
:   File "/app/app/__init__.py", line 10, in <module>
:   File "/app/.heroku/python/lib/python2.7/site-packages/flask/config.py", line 163, in from_object
:   File "/app/.heroku/python/lib/python2.7/site-packages/werkzeug/utils.py", line 436, in import_string
:     raise ImportError(e)
: - missing __init__.py in a package;
: - package or module path not included in sys.path;
: - duplicated package or module name taking precedence in sys.path;
: - missing module, class, function or variable;
:
: Debugged import:
:
:
: ImportError: 'module' object has no attribute 'DevelopmentConfig'
: Original exception:
: - 'config' found in '/app/config.pyc'.
:
: [2016-08-23 01:18:51 +0000] [10] [INFO] Worker exiting (pid: 10)
: [2016-08-23 01:18:51 +0000] [3] [INFO] Shutting down: Master
: [2016-08-23 01:18:51 +0000] [3] [INFO] Reason: Worker failed to boot.
:     sys.exc_info()[2])
: - 'config.DevelopmentConfig' not found.
: State changed from up to crashed
:[2016-08-23 01:18:51+0000][9][INFO]工人退出(pid:9)
:
:原始例外情况:
:
:进程已退出,状态为3
:self.wsgi=self.app.wsgi()
:文件“/app/.heroku/python/lib/python2.7/site packages/gunicorn/app/base.py”,第67行,在wsgi中
:self.callable=self.load()
:self.load_wsgi()
:File“/app/.heroku/python/lib/python2.7/site packages/gunicorn/workers/base.py”,第136行,在load\u wsgi中
:worker.init_进程()
:[2016-08-23 01:18:51+0000][10][错误]工作进程中出现异常
:回溯(最近一次呼叫最后一次):
:文件“/app/.heroku/python/lib/python2.7/site packages/gunicorn/arbiter.py”,第557行,在spawn_worker中
:File“/app/.heroku/python/lib/python2.7/site packages/gunicorn/workers/base.py”,init_进程中的第126行
:ImportStringError:config.DevelopmentConfig的导入字符串()失败。可能的原因是:
:
:File“/app/.heroku/python/lib/python2.7/site packages/werkzeug/utils.py”,第443行,输入字符串
:obj=导入字符串(obj)
:状态从启动更改为启动
:app.config.from_对象('config.DevelopmentConfig'))
:File“/app/.heroku/python/lib/python2.7/site packages/gunicorn/app/wsgiapp.py”,第65行,加载
:返回self.load_wsgiapp()
:文件“/app/.heroku/python/lib/python2.7/site packages/gunicorn/app/wsgiapp.py”,第52行,在load_wsgiapp中
:return util.import\u app(self.app\u uri)
:文件“/app/.heroku/python/lib/python2.7/site packages/gunicorn/util.py”,第357行,在import_应用程序中
:\导入\导入(模块)
:文件“/app/app/_init__.py”,第10行,在
:File“/app/.heroku/python/lib/python2.7/site packages/flask/config.py”,第163行,在from_对象中
:File“/app/.heroku/python/lib/python2.7/site packages/werkzeug/utils.py”,第436行,输入字符串
:提高效率(e)
:-包中缺少uu init_uuu.py;
:-sys.path中不包括包或模块路径;
:-重复的包或模块名称优先于sys.path;
:-缺少模块、类、函数或变量;
:
:已调试的导入:
:
:
:ImportError:“模块”对象没有属性“DevelopmentConfig”
:原始例外情况:
:-“config”位于“/app/config.pyc”中。
:
:[2016-08-2301:18:51+0000][10][INFO]工人退出(pid:10)
:[2016-08-2301:18:51+0000][3][INFO]关机:主机
:[2016-08-23 01:18:51+0000][3][INFO]原因:工作进程无法启动。
:sys.exc_info()[2])
:-“未找到config.DevelopmentConfig”。
:状态从最多更改为已崩溃

更新我也更改了
配置
foo
,令我大吃一惊的是,它似乎起了作用。因此,路径中可能存在重复项。在写答案之前,我将对它进行更多的实验。

我将配置文件的名称从更改为
config\u app.py
,并将该文件保留在项目的根目录中,它可以在本地和heroku上正常运行。(不要忘记相应地修改
app.config.from_object()


我不确定,但似乎错误建议“复制的包或模块名称优先于sys.path;”是适用的。

日志中已经列出了可能的错误源。你有没有检查过是否有合适的。老实说,我不完全了解清单上的项目。由于应用程序在本地运行良好,因此不应“丢失”任何内容。有一行写着“/app/config.pyc”中的“config”,就我而言,这应该能起到作用。我将尝试将导入更改为一个更独特的名称,看看会发生什么。
/ProjectRoot
  config.py
  /app
    __init.py__
    views.py
    /static
    /templates
: [2016-08-23 01:18:51 +0000] [9] [INFO] Worker exiting (pid: 9)
:
: Original exception:
:
: Process exited with status 3
:     self.wsgi = self.app.wsgi()
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/base.py", line 67, in wsgi
:     self.callable = self.load()
:     self.load_wsgi()
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 136, in load_wsgi
:     worker.init_process()
: [2016-08-23 01:18:51 +0000] [10] [ERROR] Exception in worker process
: Traceback (most recent call last):
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/arbiter.py", line 557, in spawn_worker
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/base.py", line 126, in init_process
: ImportStringError: import_string() failed for 'config.DevelopmentConfig'. Possible reasons are:
:
:   File "/app/.heroku/python/lib/python2.7/site-packages/werkzeug/utils.py", line 443, in import_string
:     obj = import_string(obj)
: State changed from starting to up
:     app.config.from_object('config.DevelopmentConfig')
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 65, in load
:     return self.load_wsgiapp()
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
:     return util.import_app(self.app_uri)
:   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/util.py", line 357, in import_app
:     __import__(module)
:   File "/app/app/__init__.py", line 10, in <module>
:   File "/app/.heroku/python/lib/python2.7/site-packages/flask/config.py", line 163, in from_object
:   File "/app/.heroku/python/lib/python2.7/site-packages/werkzeug/utils.py", line 436, in import_string
:     raise ImportError(e)
: - missing __init__.py in a package;
: - package or module path not included in sys.path;
: - duplicated package or module name taking precedence in sys.path;
: - missing module, class, function or variable;
:
: Debugged import:
:
:
: ImportError: 'module' object has no attribute 'DevelopmentConfig'
: Original exception:
: - 'config' found in '/app/config.pyc'.
:
: [2016-08-23 01:18:51 +0000] [10] [INFO] Worker exiting (pid: 10)
: [2016-08-23 01:18:51 +0000] [3] [INFO] Shutting down: Master
: [2016-08-23 01:18:51 +0000] [3] [INFO] Reason: Worker failed to boot.
:     sys.exc_info()[2])
: - 'config.DevelopmentConfig' not found.
: State changed from up to crashed