flask - ./test.py 中的“Flask ImportError:没有名为 Flask 的模块”
问题描述
我尝试编写如下结构的微服务,但是当我运行 ./test.py 时出现错误:
Traceback (most recent call last):
File "./test.py", line 2, in <module>
from authorize import create_app
File "~/projects/authorize/authorize/__init__.py", line 1, in <module>
from flask import Flask
ModuleNotFoundError: No module named 'flask'
我的项目结构:
authorize
├── authorize
│ ├── config
│ │ ├── config.py
│ │ ├── __init__.py
│ ├── __init__.py
├── test.py
我项目中的每个文件都是:
/授权/test.py:
#!/usr/bin/python
from authorize import create_app
app = create_app()
if __name__ == "__main__":
app.run()
/授权/授权/__init__.py:
from flask import Flask
from authorize.config import Config
def create_app():
app = Flask(__name__)
app.config.from_object(Config)
return app
/授权/授权/配置/__init__.py:
from authorize.config.config import Config
/授权/授权/配置/config.py:
from os import environ
class Config:
ENV = environ.get("MY_AUTH_ENV", "production")
DEBUG = int(environ.get("MY_AUTH_DEBUG","0"))
TESTING = int(environ.get("MY_AUTH_TESTING", "0"))
我在 venv 中隔离了我的项目,需求包是:
click==8.0.1
Flask==2.0.1
itsdangerous==2.0.1
Jinja2==3.0.1
MarkupSafe==2.0.1
pkg_resources==0.0.0
python-dotenv==0.19.0
simplejson==3.17.3
watchdog==2.1.3
Werkzeug==2.0.1
我会感谢你的帮助。
解决方案
我发现我可以使用:
#!/usr/bin/env python3
代替
#!/usr/bin/python
在文件 test.py 中,它可以工作。
但我仍然有一个问题,下面的代码 authorize/authorize/__init__.py 获取我的环境变量但不能更改我的“应用程序”配置:
app.config.from_object(Config) # Load configs from env variables
推荐阅读
- python - 读取 CSV,使用 pyproj Transform 更改 2 列并保存到新的 CSV
- ios - Swift noob 问题:尝试在应用程序加载时加载函数
- azure - 如何使用 Azure 数据工厂在 2 个 SQL 服务器之间迁移存储过程?
- sql - 如何检查光标范围内的最大值?
- gmail - 无法从 plesk 网络邮件发送到 Gmail“简单邮件”
- jquery - 如何使用 jquery 更改 CurrentCulture
- python-3.x - .bash_profile 中是否有特定的环境变量存储格式?
- terminal - 使用主机文件同时访问旧/新站点
- machine-learning - 用于分类学/一般词分类的开源预训练模型
- java - Python 中使用 if-else 语句的范围规则 (LEGB)