ModuleNotFoundError:AWS GLUE 中没有名为“psycopg2._psycopg”的模块 - Python 3.9

问题描述 投票:0回答:1

我正在尝试使用 AWS Glue 中的库

psycopg2

我关注了这个问题

“我所做的是将 psycopg2-binary 安装到一个目录中并压缩该目录的内容:

mkdir psycopg2-binary
cd psycopg2-binary
pip install psycopg2-binary -t  .
zip -r9 psycopg2.zip *

然后,我将 psycopg2.zip 复制到 S3 存储桶,并将其作为额外的 Python 库添加到 Glue Spark 作业的“Python 库路径”下。

但是当我尝试导入库时出现此错误

import psycopg2

 import psycopg2
  File "/tmp/psycopg2.zip/psycopg2/__init__.py", line 51, in <module>
    from psycopg2._psycopg import (                     # noqa
ModuleNotFoundError: No module named 'psycopg2._psycopg'
  • 我正在使用
    Python 3.9
  • 我已将 zip 上传至
    Python library path

我还尝试仅压缩 psycopg2 文件夹(而不是整个项目)并获得相同的错误。

我还尝试将

Job parameters
作为
--additional-python-modules
:
psycopg2
传递而不使用 zip 文件,这样 Glue 就会尝试安装它。但我收到以下错误:

Error Category: IMPORT_ERROR; ModuleNotFoundError: No module named 'psycopg2'

也尝试过

--additional-python-modules
psycopg2-binary==2.9.9
,但出现同样的错误。

正在安装软件包,但导入不起作用。

python amazon-web-services psycopg2 aws-glue
1个回答
0
投票

我的背景是我有很多软件包需要安装。 一些软件包是通过

Python library path
安装的,而其他软件包则通过
--additional-python-modules
作为
Job parameters
安装。

我所做的就是清除所有的库,并通过指定的

--additional-python-modules
版本指定所有我想要的库:

anyio==4.3.0,appdirs==1.4.4,asn1crypto==1.5.1,awswrangler==3.7.2,beautifulsoup4==4.12.3,boto3==1.34.78,botocore==1.34.78,certifi==2024.2.2,charset-normalizer==3.3.2,exceptiongroup==1.2.0,frozendict==2.4.1,h11==0.14.0,html5lib==1.1,httpcore==0.16.3,httpx==0.23.3,idna==3.6,jmespath==1.0.1,lxml==4.9.4,multitasking==0.0.11,numpy==1.26.4,packaging==24.0,pandas==1.5.3,pandas-datareader==0.10.0,peewee==3.17.1,psycopg2-binary==2.9.9,pyarrow==15.0.2,python-bcb==0.1.8,python-dateutil==2.9.0.post0,python-dotenv==1.0.1,pytz==2024.1,redshift-connector==2.1.0,requests==2.31.0,rfc3986==1.5.0,ruff==0.2.2,s3transfer==0.10.1,scramp==1.4.4,six==1.16.0,sniffio==1.3.1,soupsieve==2.5,tenacity==8.2.3,typing_extensions==4.11.0,urllib3==1.26.18,webencodings==0.5.1,yfinance==0.2.37

注意

psycopg2-binary
,它起作用了。

我还传递了以下作业参数:

--python-modules-installer-option
--upgrade

当事情变得奇怪时,全新安装总是一个好的开始!

© www.soinside.com 2019 - 2024. All rights reserved.