Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 无法导入模块“lambda_函数”:没有名为“cx_Oracle”的模块_Python_Amazon Web Services_Aws Lambda - Fatal编程技术网

Python 无法导入模块“lambda_函数”:没有名为“cx_Oracle”的模块

Python 无法导入模块“lambda_函数”:没有名为“cx_Oracle”的模块,python,amazon-web-services,aws-lambda,Python,Amazon Web Services,Aws Lambda,我现在正试图在Python中创建一个AWS Lambda函数来连接到Oracle数据库,只是一个测试连接。但我没有成功地完成流程。每次我看到此错误消息时: { "errorMessage": "Unable to import module 'lambda_function': No module named 'cx_Oracle'", "errorType": "Runtime.ImportModuleError" } 我的网站包文件夹: **我的lambda

我现在正试图在Python中创建一个AWS Lambda函数来连接到Oracle数据库,只是一个测试连接。但我没有成功地完成流程。每次我看到此错误消息时:

{ "errorMessage": "Unable to import module 'lambda_function': No module named 'cx_Oracle'", "errorType": "Runtime.ImportModuleError" } 我的网站包文件夹:

**我的lambda配置:**

对于lambda中的python3.7附加路径,请使用PYTHONPATH环境变量,并将LIB保存在此文件夹中


对于lambda中的python3.7附加路径,请使用PYTHONPATH环境变量,并将LIB保存在此文件夹中


AWS Lambda在Amazon Linux上运行,因此在本例中,您需要cx_Oracle的兼容库

只需下载whl,解压缩它,然后将.so文件复制到您的lib文件夹中

这样Lambda就能认出cx_Oracle了

文件夹结构应如下所示:

AWS Lambda在Amazon Linux上运行,因此在本例中,您需要兼容的cx_Oracle库

只需下载whl,解压缩它,然后将.so文件复制到您的lib文件夹中

这样Lambda就能认出cx_Oracle了

文件夹结构应如下所示:

    import cx_Oracle

    # Yeah, you need this
    with open('/tmp/HOSTALIASES', 'w') as f: f.write(f'{os.uname()[1]} localhost\n')

    # Oracle away!
    def lambda_handler(event, context):
        return str(
            cx_Oracle.connect(
                'username',
                'password',
                cx_Oracle.makedsn(
                    'rds.amazonaws.com', 1521, 'SOME_SID',
                )
            ).cursor().execute('SELECT 42 FROM DUAL').fetchone()
        )