如何在Power Automate Desktop中正确导入azure.storage.blob等Python模块?
解决Power Automate Desktop中Python模块导入失败问题
问题详情
我在Power Automate Desktop(PAD)的「Run Python Script」活动中运行以下Python 2.7脚本,尝试导入azure.storage.blob模块:
# Python 2.7 code from azure.storage.blob import BlobServiceClient import os # 配置信息 account_name = """%BS_ACCOUNT_NAME%""" account_key = urllib.parse.quote("""%BS_ACCOUNT_KEY%""") container_name = """%BS_CONTAINER_NAME%""" blob_name = """%BS_BLOB_FILE_NAME%""" local_file_path = """%LOCAL_FILE_PATH%""" # 创建Blob服务客户端 blob_service_client = BlobServiceClient(account_url="https://{}.blob.core.windows.net".format(account_name), credential=account_key) # 获取容器客户端 container_client = blob_service_client.get_container_client(container_name) # 获取Blob客户端 blob_client = container_client.get_blob_client(blob_name) # 下载Blob到本地文件 with open(local_file_path, "wb") as local_file: download_stream = blob_client.download_blob() local_file.write(download_stream.readall()) print "Success"
我已通过CMD执行以下命令安装模块:
pip install azure-storage-blob==1.5.0pip install azure-storage-blob
该代码在Visual Studio Code中可正常运行,但在PAD中使用Python 2.7或3.4运行时,抛出如下错误:
Traceback (most recent call last): File "<string>", line 3, in <module> ImportError: No module named azure.storage.blob
甚至导入json这类标准库模块时也会出现相同错误。推测问题出在模块安装路径或PAD的相关设置上,需要明确如何在PAD的「Run Python Script」活动中正确导入外部Python模块。
解决方法
1. 确定PAD使用的Python解释器路径
PAD可能调用了和CMD环境不同的Python解释器,先找到它的路径:
- 在PAD中创建一个「Run Python Script」活动,执行以下代码:
import sys print(sys.executable) - 运行流程,记录输出的Python路径(例如
C:\Python27\python.exe或PAD自带的C:\Program Files\Power Automate Desktop\Python\python.exe)
2. 使用对应路径的pip安装模块
打开CMD,用刚才获取的Python路径下的pip工具安装模块:
- 若路径为
C:\Python27\python.exe,执行:C:\Python27\Scripts\pip.exe install azure-storage-blob - 若使用PAD自带Python,切换到
C:\Program Files\Power Automate Desktop\Python\Scripts目录,执行pip.exe install azure-storage-blob
3. 核对PAD的Python版本设置
- 点击PAD右上角的齿轮图标进入设置
- 选择「Python」选项卡,确认选中的Python版本与你安装模块的版本一致(2.7或3.x)
- 若版本不匹配,点击「浏览」按钮选择正确的Python解释器路径
4. 验证模块导入
在PAD的「Run Python Script」活动中执行以下代码验证:
try: from azure.storage.blob import BlobServiceClient print("模块导入成功") except ImportError as e: print("导入失败: {}".format(e))
内容的提问来源于stack exchange,提问作者Gabriele Rodonò
相关产品推荐
相关产品推荐

