簡體   English   中英

無法導入模塊“lambda_function”:沒有名為“cx_Oracle”的模塊

[英]Unable to import module 'lambda_function': No module named 'cx_Oracle'

我正在嘗試在 Python 中創建一個 AWS Lambda 函數來連接到 Oracle 數據庫(目前,只是一個測試連接)。 但是我沒有成功完成流程。 每次我看到這個錯誤信息:

{
      "errorMessage": "Unable to import module 'lambda_function': No module named 'cx_Oracle'",
      "errorType": "Runtime.ImportModuleError"
    }

我在 Ubuntu WSL 上創建了一個 virtualenv,在 lib 文件夾上安裝 Oracle InstantClient,通過 pip 在 sites-package 文件夾安裝 cx_oracle,並在同一個文件夾中創建我的 lambda 函數,壓縮所有內容,上傳到我的 S3 並運行.

誰能幫我?

我的代碼:

    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()
        )

我的網站包文件夾:文件夾

** 我的 lambda 配置:**拉姆達

AWS Lambda 與 Amazon Linux 一起運行,因此您需要 cx_Oracle 的兼容庫,在本例中為manylinux.whl

只需下載 whl,解壓縮,然后將 .so 文件復制到您的lib文件夾中。

這樣 Lambda 就會識別 cx_Oracle。

文件夾結構應如下所示:結構

對於 lambda 中的 python3.7 附加路徑,請使用 PYTHONPATH 環境變量,並將您的庫保存在此文件夾中。

在此處輸入圖片說明

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM