下面的代码在一台机器上从 Windows excel VBA Shell 执行简单的 python 脚本,但不在另一台机器上执行。
Sub RunIt()
CreateObject("wscript.shell").Run "python.exe " & """\\acntnyc039\dept\HGS\Bob\test_syst_arg2.py""", 1, True
'same as
Shell "python.exe ""\\acntnyc039\dept\HGS\Bob\test_syst_arg2.py""", 1
End Sub
对应的Python:
import pandas as pd
import sys
path = r'\\acntnyc039\dept\HGS\Bob\test\test.csv'
raw_data = {'first_name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'],
'last_name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze'],
'age': [42, 52, 36, 24, 73],
'preTestScore': [4, 24, 31, 2, 3],
'postTestScore': [25, 94, 57, 62, 70]}
df = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age',
'preTestScore', 'postTestScore'])
df.to_csv(path)
我已阅读所有类似的主题并检查了以下内容:
- 两个用户都具有相同的非管理员访问权限,但其中一个用户不会执行该操作,不会产生任何错误消息(但 cmd 打开)
- 网络路径没有空格
- 同一行直接从 cmd 运行得很好
- 输入时发现python
python
from cmd
,但仍然尝试将 python 替换为python.exe
以及完整路径python.exe
在上面的VBA字符串中无济于事
- 完全重新安装 anaconda3 并没有解决问题
- shell 似乎在非 python 代码上运行良好,如下所示:
Shell "notepad.exe ""\\acntnyc039\dept\HGS\Bob\test\test.csv""", 1
我真的没有想法了......