![](/img/trans.png)
[英]AWS Lambda Importing psycopg2 - Unable to import module 'app': No module named 'psycopg2._psycopg
[英]No module named psycopg2._psycopg2 on Google Cloud Functions
我有一個通過 psycopg2 使用 Google Cloud SQL 的 Google Cloud Function。 我的 requirements.txt 中有 psycopg2,但是一旦服務更新,我就會收到錯誤No module named psycopg2._psycopg2
。
這是在Cloud Function 環境中運行的 psycopg2 的 C 庫的問題嗎? 我該如何解決?
import psycopg2
def postgres_demo(request):
return "hi"
psycopg2==2.8.2
service: gcf-python-v2
provider:
name: google
stage: dev
runtime: python37
region: us-central1
project: my-project
credentials: ~/.gcloud/keyfile.json
plugins:
- serverless-google-cloudfunctions
- serverless-python-requirements
custom:
pythonRequirements:
pythonBin: python3
package:
exclude:
- node_modules/**
- .gitignore
- .git/**
functions:
second:
handler: postgres_demo
events:
- http: path
serverless deploy
總是會導致:Deployment failed: RESOURCE_ERROR
{"ResourceType":"cloudfunctions.v1beta2.function","ResourceErrorCode":"400","ResourceErrorMessage":"Function failed on loading user code. Error message: Code in file main.py can't be loaded.\nDid you list all required modules in requirements.txt?\nDetailed stack trace: Traceback (most recent call last):\n File \"/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py\", line 305, in check_or_load_user_function\n _function_handler.load_user_function()\n File \"/env/local/lib/python3.7/site-packages/google/cloud/functions/worker.py\", line 184, in load_user_function\n spec.loader.exec_module(main)\n File \"<frozen importlib._bootstrap_external>\", line 728, in exec_module\n File \"<frozen importlib._bootstrap>\", line 219, in _call_with_frames_removed\n File \"/user_code/main.py\", line 1, in <module>\n import psycopg2\n File \"/user_code/psycopg2/__init__.py\", line 50, in <module>\n from psycopg2._psycopg import ( # noqa\nModuleNotFoundError: No module named 'psycopg2._psycopg'\n"}
我通過完全刪除python-serverless-requirements
並使用無服務器package
選項來確保只有main.py
和requirements.txt
包含在 zip 文件中來解決它。
谷歌雲在 requirements.txt 本身中安裝包,因此您不需要無服務器插件。 谷歌雲也有 psycopg2 必要的 C 庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.