Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 17 for SQL Server' : file not found (0) (SQLDriverConnect)")检查 pyodbc.drivers() 没有结果我根据提供的说明安装了 Microsoft ODBC 驱动程序 这里:I installed the Microsoft ODBC driver according to the instructions provided here:我运行了 odbcinst -j 产生了DRIVERS............: /etc/odbcinst.iniSYSTEM DATA SOURCES: /etc/odbc.iniFILE DATA SOURCES..: /etc/ODBCDataSourcesUSER DATA SOURCES..: /Users/pawannandakishore/.odbc.iniSQLULEN Size.......: 8SQLLEN Size........: 8SQLSETPOSIROW Size.: 8但是当我到达 /etc 时,我找不到 odbcinst.ini 或 odbc.ini.他们似乎在 opt/homebrew/Cellar/but when I got to /etc, I cannot find either odbcinst.ini or odbc.ini. They are seem to be in opt/homebrew/Cellar/我真的很感激这方面的帮助.I would really appreciate some help on this.推荐答案UPD:您实际上可以在容器中使用 pyodbc 但容器应该在 x86_64 架构容器中构建和执行.为此,您需要将 platform 添加到 docker-compose.yml 或在容器运行期间(使用 docker 时)提供参数.您需要确保使用 buildx 构建容器!UPD:You actually can use pyodbc in the container but the container should be built and executed in the x86_64 arch container. In order to do this, you need to add the platform either to docker-compose.yml or provide an argument during container run (when using docker).You need to make sure that you are building a container using buildx!码头工人:docker buildx build --platform linux/amd64 -t myimage .docker run --platform linux/amd64 myimage bashDocker-compose:Docker-compose:version: "3.9"services: web: image: myimage:latest build: context: ./ platform: linux/amd64原答案:pyodbc 确实不支持 ARM 架构.我在 M1 上使用 pymssql 以连接到 MSSQL 服务器.Original answer:It's true that pyodbc does not support ARM architecture. I'm using pymssql on my M1 in order to connect to MSSQL server.您需要安装系统要求 freetds-dev.对于 alpine 容器,它将是 apk add freetds-devYou need to install the system requirement freetds-dev. For alpine container, it will be apk add freetds-dev在 pip 要求中添加 pymssql 包.In pip requirements add pymssql package.使用简单脚本测试连接:Test connection with simple script:import pymssqlconn = pymssql.connect(server='mssql', user='SA', password='Passw@rd', database='master')cursor = conn.cursor()cursor.execute("""SELECT 1;""")SqlAlchemy 连接应该如下所示SQLALCHEMY_DATABASE_URI = ( f"mssql+pymssql://{MSSQL_USER}:{MSSQL_PASSWORD}@{MSSQL_HOST}/{MSSQL_DB}?")如果您需要在 M1 上运行 MSSQL 数据库 - 这是我对这个问题的回答 https://stackoverflow.com/a/66919852/11515610If you need to run MSSQL database on M1 - here my answer on this problem https://stackoverflow.com/a/66919852/11515610相关链接:自适应服务器连接失败(DB-Lib 错误消息 20002,严重性 9)https://docs.sqlalchemy.org/en/14/dialects/mssql.html#module-sqlalchemy.dialects.mssql.pymssqlhttps://docs.microsoft.com/en-us/sql/connect/python/pymssql/step-1-configure-development-environment-for-pymssql-python-development?view=sql-server-ver15https://pymssql.readthedocs.io/en/stable/pymssql_examples.html 这篇关于M1 Mac 上的 Pyodbc的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
06-20 04:10