我尝试通过 PHP 运行 python 我一直在获取
UnicodeEncodeError: 'ascii' codec can't encode characters in position 360-362: ordinal not in range(128)
我试过了
php
$command = "python ".public_path().'/python/start_clientsim.py 2>&1';
$result = exec($command);
python (start_clientsim.py)
import paramiko
import time
import sys
import os
import pdb
# Note
# sudo pip install --user paramiko
ip = "172.1.1.1"
un = "root"
pw = "123"
key_filename='/Users/keys/id_rsa'
def ssh_con (ip, un, pw):
global ssh
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip, username=un, password=pw, key_filename=key_filename)
def cmd_io (command):
global ssh_cmd
ssh_cmd.send("%s \n" %command)
time.sleep(1)
output = ssh_cmd.recv(10000).decode("utf-8")
print (output)
ssh_con(ip,un,pw)
ssh_cmd = ssh.invoke_shell()
cmd_io("clientsim cli")
cmd_io("start subscriber-group dth-sub start-traffic udp")
cmd_io("exit")
请您参考如下方法:
尝试运行
putenv("PYTHONIOENCODING=utf-8");
在从 PHP 执行 shell 命令之前。参见 https://stackoverflow.com/a/7363085/197921了解详情。
