[英]SqlAlchemy and mysql-connector-python Docker file
我试图用Docker设置SqlAlchemy和mysql-connector-python。 我在requirements.txt中添加了以下内容,但每当我尝试插入记录时,我都会遇到Seg Fault,特别是'Process done with exit code 139(由信号11中断:SIGSEGV)'。 我在ubuntu上运行它。 有没有人有这个工作的Docker文件? 除了在requirements.txt中放置SqlAlchemy和mysql-connector-python之外,我还需要做其他事情吗?
FROM ubuntu:16.04
# Update and install Python libraries
RUN apt-get -y update && apt-get install -y python3
RUN pip3 install --upgrade pip
RUN pip3 install -r /event_git/requirements.txt
requirements.txt有:
grpcio==1.11.0
grpcio-tools==1.11.0
mysql-connector-python==8.0.6
SqlAlchemy
对于我正在做的Python代码:
db_uri = ConfigFetcher.get_db_uri()
engine_obj = create_engine(db_uri, pool_recycle=3600)
SESSION_MAKER = sessionmaker(bind=engine_obj)
然后做:
@staticmethod
@contextmanager
def get_session_no_expire_scope() -> Session:
"""Provide a transactional scope around a series of operations."""
session = SESSION_MAKER(expire_on_commit=False)
try:
yield session
session.commit()
except:
session.rollback()
raise
finally:
session.close()
我试过跟随https://mysql.wisborg.dk/2019/03/03/using-sqlalchemy-with-mysql-8/#Installing-MySQL-ConnectorPython-and-SQLAlchemy无济于事。 任何帮助将非常感谢。
Connector / Python的当前版本是8.0.16,请更新您的requirements.txt。
您可以通过运行以下pip3 install --upgrade mysql-connector-python
手动更新已安装的版本: pip3 install --upgrade mysql-connector-python
。
我希望它有所帮助。
找出问题所在。 关键是import mysql.connector
需要位于create_engine所在文件的顶部。 仍然不确定确切的原因,但至少似乎定义_CONNECTION_POOLS = {}
。 如果有人知道为什么,请提出你的想法。 python文件中的导入示例:
import mysql.connector # need this _regardless_ of if you use it or not.
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm.session import Session
from sqlalchemy import engine
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.