【发布时间】:2019-05-29 02:58:18
【问题描述】:
Azure 出现模块导入错误,但相同的代码在本地完美运行。
2019-05-29T02:50:47.388004719Z: [ERROR] Traceback (most recent call last):
2019-05-29T02:50:47.388027419Z: [ERROR] File "/usr/local/lib/python3.6/site-packages/gunicorn/arbiter.py", line 583, in spawn_worker
2019-05-29T02:50:47.388031719Z: [ERROR] worker.init_process()
2019-05-29T02:50:47.388035419Z: [ERROR] File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 129, in init_process
2019-05-29T02:50:47.388039419Z: [ERROR] self.load_wsgi()
2019-05-29T02:50:47.388043019Z: [ERROR] File "/usr/local/lib/python3.6/site-packages/gunicorn/workers/base.py", line 138, in load_wsgi
2019-05-29T02:50:47.388047119Z: [ERROR] self.wsgi = self.app.wsgi()
2019-05-29T02:50:47.388050819Z: [ERROR] File "/usr/local/lib/python3.6/site-packages/gunicorn/app/base.py", line 67, in wsgi
2019-05-29T02:50:47.388054619Z: [ERROR] self.callable = self.load()
2019-05-29T02:50:47.388075019Z: [ERROR] File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 52, in load
2019-05-29T02:50:47.388084919Z: [ERROR] return self.load_wsgiapp()
2019-05-29T02:50:47.388088619Z: [ERROR] File "/usr/local/lib/python3.6/site-packages/gunicorn/app/wsgiapp.py", line 41, in load_wsgiapp
2019-05-29T02:50:47.388092219Z: [ERROR] return util.import_app(self.app_uri)
2019-05-29T02:50:47.388095619Z: [ERROR] File "/usr/local/lib/python3.6/site-packages/gunicorn/util.py", line 350, in import_app
2019-05-29T02:50:47.388099119Z: [ERROR] __import__(module)
2019-05-29T02:50:47.388102419Z: [ERROR] File "/home/site/wwwroot/app.py", line 102, in <module>
2019-05-29T02:50:47.388106219Z: [ERROR] from views.auth import register_user_bp, user_login_bp, user_logout_bp
2019-05-29T02:50:47.388109619Z: [ERROR] File "/home/site/wwwroot/views/auth.py", line 4, in <module>
2019-05-29T02:50:47.388113619Z: [ERROR] from Forms import *
2019-05-29T02:50:47.388116919Z: [ERROR] ModuleNotFoundError: No module named 'Forms'
似乎找到了我的自定义模块之一,但没有从子目录的根目录中找到。但是,它似乎成功地从 app.py 导入了 Config.py,它们都在根目录中。
如果这很重要,程序从根目录中的 app.py 运行
我认为 gunicorn/WSGI 的工作方式有一些我不理解的地方。我无法弄清楚导入的行为方式发生了什么变化。
project_root
├── app.py
├── Config.py
├── Forms.py
├── __init__.py
├── manage.py
├── migrations
├── Models.py
├── requirements.txt
├── static
├── templates
│ ├── change_profile.html
│ ├── dash_app_layout.py
│ ├── default_login.html
│ ├── default_logout.html
│ ├── _formhelpers.html
│ ├── header.html
│ ├── index.html
│ ├── __init__.py
│ ├── nav_layout.py
│ ├── record_meeting.html
│ ├── register_user.html
│ ├── upload_meeting.html
│ └── voice_enroll.html
├── utils
│ ├── audio_processor
│ │ ├── AudioProcessor.py
│ │ ├── audio_type_converter.py
│ │ ├── Deidentifier.py
│ │ ├── Identification
│ │ ├── __init__.py
│ │ ├── Utterance.py
│ │ └── voice_enroll.py
│ ├── db_operations.py
│ ├── __init__.py
│ ├── interim_result_processor.py
│ └── utils.py
└── views
├── auth.py
├── dash_callbacks.py
├── __init__.py
├── meeting_upload.py
├── profile.py
└── record_meeting.py
我不确定为什么它在本地运行良好,但在 webapp 上时无法从 Forms.py 导入。我很确定它与文件结构有关,但我不知道是什么以及如何修复它。
【问题讨论】:
标签: python azure flask importerror