我试图从Excel运行一个简单的Python脚本,方法是在VBA宏中调用该脚本。每当我从Spyder运行脚本时,它都能完美地执行。但是,当我使用VBA从Excel调用脚本时,它失败了。只有当我将Numpy或Pandas(我没有尝试过其他库)导入脚本时才会发生这种情况。在
调用脚本的VBA宏如下所示:Sub RunPythonScript2()
'Declare our variables
Dim RetVal As String
Dim exe As String
Dim python As String
Dim paths As String
exe = "C:\Users\myname\Anaconda3\pythonw.exe"
python = "C:\Users\myname\OneDrive\Reference Documents\Python\Excel and Python\03 Script.py"
paths = """" & exe & """" & " " & """" & python & """"
RetVal = Shell(paths, vbNormalFocus)
End Sub
下面是Python脚本:
^{pr2}$
到目前为止一切正常。但是,如果我添加一个语句来将Numpy或Pandas导入python脚本,那么我就不能再从Excel成功调用该脚本了。但是,我可以从Spyder运行脚本并生成预期的结果。在
我最初称为python.exe,但当我使用:import sys
print(sys.executable)
我看到斯派德在叫pythonw.exe。我是调用python.exe还是pythonw.exe似乎无关紧要。在
当我导入Numpy并运行脚本时,不会收到任何错误消息。结果是没有任何内容被打印到Excel。在
我在Windows10上使用以下64位软件包版本python 3.7.3版
numpy版本1.16.2
pywin32版本223
水蟒版本定制(因为我安装了xlwings和geopandas)
我希望能够将类似这样的内容打印到Excel:sht.Range('A1').Value = np.pi
编辑-------------------------------------
我也证实了它和纽比有关。我能够在Python代码中import sys没有任何问题,但是我仍然对Numpy和Pandas有问题。在
其他人已经成功地运行了这段代码,所以我怀疑这一定是某种与环境有关的问题。但是,我真的不知道如何管理我的环境。在
我试过一个干净的水蟒装置,但我仍然有这个问题。以下是conda info返回的内容:active environment : base
active env location : C:\Users\\AppData\Local\Continuum\anaconda3
shell level : 1
user config file : C:\Users\\.condarc
populated config files : C:\Users\\.condarc
conda version : 4.6.14
conda-build version : 3.17.8
python version : 3.7.3.final.0
base environment : C:\Users\\AppData\Local\Continuum\anaconda3 (writable)
channel URLs : https://repo.anaconda.com/pkgs/main/win-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/free/win-64
https://repo.anaconda.com/pkgs/free/noarch
https://repo.anaconda.com/pkgs/r/win-64
https://repo.anaconda.com/pkgs/r/noarch
https://repo.anaconda.com/pkgs/msys2/win-64
https://repo.anaconda.com/pkgs/msys2/noarch
package cache : C:\Users\\AppData\Local\Continuum\anaconda3\pkgs
C:\Users\\.conda\pkgs
C:\Users\\AppData\Local\conda\conda\pkgs
envs directories : C:\Users\\AppData\Local\Continuum\anaconda3\envs
C:\Users\\.conda\envs
C:\Users\\AppData\Local\conda\conda\envs
platform : win-64
user-agent : conda/4.6.14 requests/2.21.0 CPython/3.7.3 Windows/10 Windows/10.0.14393
administrator : False
netrc file : None
offline mode : False
同样的问题发生在我家里的电脑和工作的电脑上。在