我有一个具有这种结构的项目:
└── external_variables
├── anatel_access_data linux.py
├── anatel_access_data.py
├── bsria_variables.py
├── future_external_variables.py
├── past_external_variables.py
└── utils
├── __init__.py
├── helper.py
├── redshift.py
└── scriptcase.py
在我的
bsria_variables.py
中,我有以下导入:
from utils.redshift import connect_redshift, save_to_redshift
from utils.scriptcase import connect_sc, read_from_script_case
我将
bsria_variables.py
上传到 Glue 中的 Python 脚本中
我将
utils
文件夹的内容压缩到 utils.zip
并上传到 s3 bucket
但是,当我运行脚本时,它会抛出一个错误:
ModuleNotFoundError: No module named 'utils'
那么,如何将额外的 Python 文件导入到脚本中?
观察:在我的机器上工作。此外,我还提供了一个 IAM 角色,该角色可以访问
S3
来查看这些文件。
我添加了屏幕截图来完成问题:
Error on running
bsria_variables.py
:
我在
utils.zip
和Python library path
中都告知了Referenced files path
:
我能够通过以下导入克服此错误:
from external_variables.utils import scriptcase, redshift
我只将我的
.whl
文件的路径告知Python library path
,在本例中是s3://aws-glue-assets-515113300956-us-east-1/libraries/external_variables/external_variables-0.1.0-py3-none-any.whl
克服这个解决方案最重要的事情是弄清楚我有一份Python shell 工作。并且它不接受
.zip
文件