为什么我的 Flask 会尝试从不同的目录导入?
Why does my Flask try to import from a different directory?
我正在尝试 运行 以下代码,但在第 3 行我收到一条错误消息
'导入错误:无法从'sqlalchemy.ext.declartive'导入名称'declaritive_base' (C:\users\timot\flasky\venv\lib\site-packages\sqlalchemy\ext\declarative_init_.py)'
我可以看到,当我 运行 使用 py model.py 编译文件时,它表明它正在上面的目录中挖掘。这不是我想要它寻找这些包裹的地方。我希望它寻找下面的内容。
C:\users\timot\flasky2\flasky\venv\lib\site-packages\sqlalchemy\
由于某些原因,pip install SQLalchemy 和 pip install flask_SQLalchemy 没有安装到上面列出的 flasky2 子目录中?
model.py 的父目录在 flasky2/flasky/venv
谁能告诉我如何告诉我的环境从 flasky2/flasky/venv lib 文件夹安装和打开库?
model.py 给有兴趣的人。
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declartive_base
from sqlalchemy.orm import sessionmaker, relationship
Base = declartive_base()
class User(Base):
__tablename__ = "person"
id = Column('id', Integer, primary_key=True, nullable=False)
username = Column('username', String, unique=True, nullable=False)
emailAddress = Column('emailAddress', String, unique=True, nullable=False)
password = Column('password', String, nullable=False)
streetNumber = Column('streetNumber', String, nullable=False)
suburb = Column('suburb', String, nullable=False)
state = Column('state', String, nullable=False)
postCode = Column('postCode', String, nullable=False)
cardNumber = Column('cardNumber', String, nullable=False)
cardCVC = Column('cardCVC', String, nullable=False)
cardExpiry = Column('cardExpiry', String, nullable=False)
engine = create_engine('sqlite:///:db.py', echo=True)
base.metadata.create_all(bind=engine)
简短回答: 这是因为您的 python 解释器可能指向不同的位置。重定向到您的虚拟环境中正确的那个,它将起作用。
积分助你一臂之力
如何找到当前 python 解释器的路径?
如果您正在使用 git bash:
$ which python
或
您还可以创建一个脚本:
import sys
print(sys.executable)
现在您知道通往您的 python 解释器的路径了。如果您使用 VScode(推荐),请单击解释器
现在,在此处插入您想要的 python 解释器的路径。
它将完成这项工作。
如果您仍然遇到问题,请告诉我
我正在尝试 运行 以下代码,但在第 3 行我收到一条错误消息
'导入错误:无法从'sqlalchemy.ext.declartive'导入名称'declaritive_base' (C:\users\timot\flasky\venv\lib\site-packages\sqlalchemy\ext\declarative_init_.py)'
我可以看到,当我 运行 使用 py model.py 编译文件时,它表明它正在上面的目录中挖掘。这不是我想要它寻找这些包裹的地方。我希望它寻找下面的内容。
C:\users\timot\flasky2\flasky\venv\lib\site-packages\sqlalchemy\
由于某些原因,pip install SQLalchemy 和 pip install flask_SQLalchemy 没有安装到上面列出的 flasky2 子目录中?
model.py 的父目录在 flasky2/flasky/venv
谁能告诉我如何告诉我的环境从 flasky2/flasky/venv lib 文件夹安装和打开库?
model.py 给有兴趣的人。
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declartive_base
from sqlalchemy.orm import sessionmaker, relationship
Base = declartive_base()
class User(Base):
__tablename__ = "person"
id = Column('id', Integer, primary_key=True, nullable=False)
username = Column('username', String, unique=True, nullable=False)
emailAddress = Column('emailAddress', String, unique=True, nullable=False)
password = Column('password', String, nullable=False)
streetNumber = Column('streetNumber', String, nullable=False)
suburb = Column('suburb', String, nullable=False)
state = Column('state', String, nullable=False)
postCode = Column('postCode', String, nullable=False)
cardNumber = Column('cardNumber', String, nullable=False)
cardCVC = Column('cardCVC', String, nullable=False)
cardExpiry = Column('cardExpiry', String, nullable=False)
engine = create_engine('sqlite:///:db.py', echo=True)
base.metadata.create_all(bind=engine)
简短回答: 这是因为您的 python 解释器可能指向不同的位置。重定向到您的虚拟环境中正确的那个,它将起作用。
积分助你一臂之力
如何找到当前 python 解释器的路径?
如果您正在使用 git bash:
$ which python
或
您还可以创建一个脚本:
import sys
print(sys.executable)
现在您知道通往您的 python 解释器的路径了。如果您使用 VScode(推荐),请单击解释器
现在,在此处插入您想要的 python 解释器的路径。
它将完成这项工作。 如果您仍然遇到问题,请告诉我