簡體   English   中英

為什么我的 Flask 嘗試從其他目錄導入?

[英]Why does my Flask try to import from a different directory?

我正在嘗試運行以下代碼,在第 3 行出現錯誤,指出

'導入錯誤:無法從 'sqlalchemy.ext.declartive' (C:\users\timot\flasky\venv\lib\site-packages\sqlalchemy\ext\declarative_init _.py ) 導入名稱 'declaritive_base'

我可以看到,當我使用 py model.py 運行文件時,它表明它正在上述目錄中進行挖掘。 這不是我想要它尋找這些包的地方。 我希望它改為尋找以下內容。

C:\users\timot\flasky2\flasky\venv\lib\site-packages\sqlalchemy\

由於某種原因 pip 安裝 SQLalchemy 和 pip 安裝 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 解釋器的路徑。 在此處輸入圖像描述

它會完成這項工作。 如果您仍然對那個 lemme 有問題,請知道

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM