如何在应用程序之间共享python类而不安装它?

如何在应用程序之间共享python类而不安装它?,python,import,Python,Import,我有一个flask应用程序,它通过封装DB访问的类访问DB。我需要在flask应用程序之外使用这个类,用于访问相同db的一些常规作业 /databases/database.db /website/application/myblueprint/views.py /website/application/myblueprint/db_class.py /scripts/log_reading.py views.py和log_reading.py都需要使用db_class.py,但不能从自己的包

我有一个flask应用程序,它通过封装DB访问的类访问DB。我需要在flask应用程序之外使用这个类,用于访问相同db的一些常规作业

/databases/database.db
/website/application/myblueprint/views.py
/website/application/myblueprint/db_class.py
/scripts/log_reading.py
views.py和log_reading.py都需要使用db_class.py,但不能从自己的包上方导入

  • 我可以使db_class.py成为自己的应用程序,并在每个应用程序中安装它 venv,但每次编辑时,我都必须在每个 地点。此外,还存在单个模块的设置开销
  • 我可以将文件放在python站点路径中,或者通过移动 它或者通过添加到路径,但这感觉是错误的,我不确定 将与venvs合作
  • 我可以sym链接,这也感觉不对

  • 我没有为DB使用flask模型,但我认为这不会解决我的问题。

    如果你想使用DB或会话,那么你必须创建应用程序上下文,在应用程序上下文之外你不能使用它

    from flask import Flask
    from sqlalchemy import create_engine
    from sqlalchemy.orm import scoped_session, sessionmaker
    import os
    
    APP_SETTINGS = os.getenv("APP_SETTINGS", "your config path")
    
    def _create_db_session(self, connection_string):
        engine = create_engine(connection_string)
        session_factory = sessionmaker(bind=self.engine)
        session = scoped_session(session_factory)
        return session
    
    app = Flask(__name__)
    app.config.from_object(APP_SETTINGS)
    db_url = app.config.get("SQLALCHEMY_DATABASE_URI")
    session =_create_db_session(db_url)
    
    #then you can use
    # session.query to query database
    # session.commit(), session.remove()
    # same operations you do normally with DB session
    

    这不是我的问题。在flask应用程序中,我可以访问我的数据库,无论有没有型号。如果我想在两个python应用程序之间共享封装dB访问的类,而不必经常在venvs上安装该应用程序,我该怎么做?