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

Issue with Modules when calling python through a shell

我正在通过 VBA 脚本调用 python 脚本。这按预期工作,直到我尝试调用导入少量库的脚本。当我以这种方式调用 python 时,某些库似乎无法加载,但其他库则不然。 (Jupyter Lab 和从命令提示符调用 .py 文件都可以无缝工作。) 我收到的错误消息是“导入 qhull 时 DLL 加载失败:找不到指定的模块。”

某些模块似乎正在加载,而其他模块会导致问题。 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

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