J.C*_*hen 6 python lambda odbc pyodbc amazon-web-services
目标:连接到AWS Lambda中的MS SQL Server
START RequestId: 37951004-404b-11e7-98fd-5177b3a46ec6 Version: $LATEST
module initialization error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'ODBC Driver 13 for SQL Server' : file not found (0) (SQLDriverConnect)")
END RequestId: 37951004-404b-11e7-98fd-5177b3a46ec6
Run Code Online (Sandbox Code Playgroud)
指的 通过virtualenv中的Tesseract OCR在AWS上LAMBDA
pip install -t pyodbc /home/ec2-user/lambda
即将相关文件复制到zip root)mkdir lib
并通过查找 ldd pyodbc.so
*复制所有共享库ldd libmsodbcsql-13.0.so.1.0
LD_LIBRARY_PATH
以lib
在lambda.py并上传zip包LAMBDA.
+-- lambda.py
+-- pyodbc.so
+-- pyodbc-4.0.16-py2.7.egg-info
+-- lib
| +-- libodbc*.so etc.
Run Code Online (Sandbox Code Playgroud)
从响应中看,除了unixODBC管理器在AWS Lambda Instance上找不到驱动程序之外,所有内容都运行正常
如何将驱动程序与我的程序包捆绑以供AWS Lambda使用?或者有没有办法告诉ODBC驱动程序管理器寻找libmsodbcsql-13.0.so.1.0
?
我已经尝试过离线安装unixODBC并设置./configure --prefix=/home/ec2-user/lambda --libdir=..
和手动更改odbcinst.ini
但没有希望.
(对不起,我对python环境以外的任何东西都不太熟悉所以我不确定所有的共享库的东西,并且通过谷歌搜索几天无法解决我的问题)
有没有办法告诉 ODBC 驱动管理器去寻找
libmsodbcsql-13.0.so.1.0
?
您可以运行odbcinst -j
并检查驱动程序 ini 文件所在的位置 ( odbcinst.ini
),以便您可以在那里设置路径。否则创建一个新的,~/.odbcinst.ini
可以在其中定义 SQL ODBC 驱动程序库的路径。
INI 配置文件示例:
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/path/to/libmsodbcsql-13.0.so.1.0
Run Code Online (Sandbox Code Playgroud)
以下是创建配置文件 ( ) 的示例命令~/.odbcinst.ini
:
printf "[ODBC Driver 13 for SQL Server]\nDescription=Microsoft ODBC Driver 13 for SQL Server\nDriver=/path/to/libmsodbcsql-13.0.so.1.0\n" >> ~/.odbcinst.ini
Run Code Online (Sandbox Code Playgroud)
如果驱动程序文件存在,但仍然找不到文件,请运行:conda update libgcc
。
请参阅:PyODBC:即使存在也无法打开驱动程序。
归档时间: |
|
查看次数: |
1478 次 |
最近记录: |