通过 shell 调用 python 时出现模块问题

Posted

技术标签:

【中文标题】通过 shell 调用 python 时出现模块问题【英文标题】:Issue with Modules when calling python through a shell 【发布时间】:2021-11-05 13:29:57 【问题描述】:

我正在通过 VBA 脚本调用 python 脚本。在我尝试调用导入少数库的脚本之前,这将按预期工作。当我以这种方式调用 python 时,某些库似乎无法加载,而其他库则不然。 (Jupyter Lab 和从命令提示符调用 .py 文件都可以无缝工作。) 我得到的错误信息是“DLL load failed while importing qhull: The specified module could not be found.”

某些模块似乎正在加载,而其他模块则导致问题。 SciPy 和 sklearn 是给我带来问题的。我应该如何解决此错误?会不会和shell的使用有关?

这是我用来执行 .py 脚本的 VBA 代码

Sub xls2py()
Dim objShell As Object
Dim PythonExe, PythonScript As String
ChDir ActiveWorkbook.Path

    Set objShell = VBA.CreateObject("Wscript.Shell")

    PythonExe = """C:\Users\Peter_K\Anaconda3\python.exe"""
    PythonScript = "C:\Users\Peter_K\Desktop\Untitled1.py"

    objShell.Run PythonExe & PythonScript
    Set objShell = Nothing

End Sub

另外,这里是负责导入库的python代码部分

import csv
import os
import math
import numpy as np
import pandas as pd
from scipy.optimize import minimize
import matplotlib.pyplot as plt
from sklearn.metrics import r2_score
from openpyxl import load_workbook
from datetime import datetime
import time as tm

【问题讨论】:

【参考方案1】:

您是否使用 pip3 安装了依赖项? 如果您使用 Python3 并使用 pip 安装依赖项,则可能无法正确导入它。 尝试使用 pip3 重新安装依赖项,看看是否能解决问题

【讨论】:

以上是关于通过 shell 调用 python 时出现模块问题的主要内容,如果未能解决你的问题,请参考以下文章

python不同包之间调用时出现文件模块不存在的问题

在 Python 3 中导入模块时出现 AttributeError

Python Post 请求 - 通过 Outlook API 发送文件时出现 415 错误

导入 numpy 模块时出现 Python 错误 [重复]

在 power shell 中安装 Az 模块时出现“PackageManagement\Install-Package:访问云文件被拒绝”错误

通过 pip 安装 PyGame 模块时出现问题 [关闭]