我正在编写一个Python脚本,它将作为lambda函数在AWS中运行。由于它需要连接到Postgres数据库,因此需要库ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Https
。看来标准psycopg2
不适用于AWS lambda。我是从this git repo下载的。
我对所有依赖项都使用virtualenv,因此我将psycopg2-3.6文件夹从下载的程序包复制到psycopg2
。在我的主脚本中,该库已导入
[myproject]/env/Lib/site-packages
但是,当我在PyCharm中运行它时,出现了错误:
import psycopg2
根据错误消息,看来它能够在虚拟环境包文件夹下找到 File "C:\Users\dxx0111\WorkSpace\iq-iot-lambda\app.py", line 2, in <module>
import psycopg2
File "C:\Users\dxx0111\WorkSpace\iq-iot-lambda\env\lib\site-packages\psycopg2\__init__.py", line 50, in <module>
from psycopg2._psycopg import ( # noqa
ModuleNotFoundError: No module named 'psycopg2._psycopg'
的目录。它只是找不到psycopg2
。我在这里想念什么?
答案 0 :(得分:1)
事实证明,从该链接下载的psycopg2
库仅在Amazon Linux上有效,因为这是编译软件包的位置。它在我的Windows计算机上不起作用。为了使其在本地工作,我必须将pip install psycopg2
安装到我的虚拟环境中。但是,当我部署到AWS Lambda时,我使用下载的库进行压缩。 psycopg2
在不同平台上也是如此。现在它在两个地方都可以使用。