好的,我有点茫然。我刚接触Python,想用Flask和SQLAlchemy做一个简单的REST应用。
显然我错过了一些步骤,但是我看不到它,有人可以看看我所缺少的吗?
这些是我到目前为止已完成的步骤:
在我的项目文件夹中使用以下内容创建setup.py
从setuptools导入设置
setup(
name='pyrecipe',
version='0.0.1',
packages=['pyrecipe'],
include_package_data=True,
install_requires=[
'click',
'flask',
'sqlalchemy',
'flask-sqlalchemy',
'gunicorn',
'itsdangerous',
'jinja2',
'markupsafe',
'werkzeug',
],
)
使用python -m venv venv
创建venv并使用source venv/bin/active
激活它
使用pip install -e .
使用export FLASK_APP=pyrecipe && export FLASK_ENV=dev
使用flask run
运行应用
我得到以下输出
错误:导入“ pyrecipe”时,引发了ImportError:
回溯(最近通话最近一次):
locate_app中的文件“ /usr/lib/python3.6/site-packages/flask/cli.py”,第235行
__import__(module_name)
文件
中的第4行“ /home/cvelin/code/python/pyrecipe/pyrecipe/init.py”from pyrecipe.database import init_db
中的文件“ /home/cvelin/code/python/pyrecipe/pyrecipe/database.py”,第1行
from sqlalchemy import create_engine
ModuleNotFoundError:没有名为“ sqlalchemy”的模块
初始化 .py内容
from flask import Flask
app = Flask(__name__)
from pyrecipe.database import init_db
init_db()
import pyrecipe.views
database.py内容
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
engine = create_engine('postgresql://postgres:postgres@localhost/postgres', convert_unicode=True)
db_session = scoped_session(sessionmaker(autocommit=False,
autoflush=False,
bind=engine))
Base = declarative_base()
Base.query = db_session.query_property()
def init_db():
# import all modules here that might define models so that
# they will be registered properly on the metadata. Otherwise
# you will have to import them first before calling init_db()
import pyrecipe.models
Base.metadata.create_all(bind=engine)
运行pip list
显示所有模块均已安装:
软件包版本位置
点击6.7
烧瓶1.0.2
Flask-SQLAlchemy 2.3.2
古尼康19.9.0
危险0.24
Jinja2 2.10
MarkupSafe 1.0
pip 18.0
pyrecipe 0.0.1 / home / cvelin / code / python / pyrecipe setuptools 39.0.1
SQLAlchemy 1.2.10
Werkzeug 0.14.1
并使用python交互式解释器按预期工作
从sqlalchemy导入>>>导入create_engine
>>>