【问题标题】:Circular Import Error while importing create_engine in Sqlalchemy在 Sqlalchemy 中导入 create_engine 时出现循环导入错误
【发布时间】:2020-06-20 13:29:25
【问题描述】:

我正在尝试使用 Python 课程进行 CS50 Web 开发,并且在 sql 部分中,从 sqlalchemy 导入 create_engine 时出现此错误

ImportError:无法从部分初始化的模块“sqlalchemy”导入名称“create_engine”(很可能是由于循环导入)

这里是sn-p:

DATABASE_URL = "postgres://usrname:password@YourHost:5432/flights"


from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker

engine = create_engine(DATABASE_URL)
db = scoped_session(sessionmaker(bind=engine))   

flights = db.execute("SELECT origin, destination, duration FROM flights").fetchall() 

for flight in flights:
    print(f"{flight.origin} to {flight.destination}, {flight.duration} minutes.")

视频的时间戳:

https://video.cs50.net/web/2018/spring/lectures/3?t=1h9m52s

【问题讨论】:

    标签: python sqlalchemy


    【解决方案1】:

    这可能是由命名空间冲突引起的 - 即将您正在执行的文件命名为 sqlalchemy.py。要解决此问题,请将您正在执行的脚本的名称更改为其他名称。

    【讨论】:

      【解决方案2】:

      我在这里没有看到循环导入,但可能的解决方法是

      import sqlalchemy as sqlalchemy_package
      engine = sqlalchemy_package.create_engine(DATABASE_URL)
      

      ,替换engine = create_engine(DATABASE_URL)这一行

      【讨论】:

      • 我遇到了问题,这是一个愚蠢的错误,我将 .py 文件命名为 sqlalchemy。
      猜你喜欢
      • 2021-12-05
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-10
      • 2019-05-13
      相关资源
      最近更新 更多