golang 调用python
平常自己看电影的时候,老是在各个平台跳转,很是麻烦和不方便,作为程序员,都是比较懒的,毕竟就是懒才有了各种便民产品的嘛

基于Qt给自己做了一个视频播放器,但是需要使用python爬虫爬取搜索的视频。但是服务器在开始制作时,选择的是golang,爬虫嘛基本都是基于Python的。所以这里就需要服务器golang上调用python爬虫脚本。
但是在操作上却遇到了一些问题,这里记录下。

首先是golang调用python的代码

args := []string{"./NetBoxApp/Python_Spiders/VideoSpider.py", cmd}
	out, err := exec.Command("python", args...).Output()
	if err != nil {
		Log.Error("CmdPythonVideoSpider ==> %s", err)
		return
	}

	data := &[]interface{}{}
	err = json.Unmarshal(out, data)
	if err != nil {
		Log.Error("CmdPythonVideoSpider json.Unmarshal( ==> %s", err)
		return
	}

	msgData := &pb.VideoSearchResult_GC{}
	for i:=0;i < len(*data);i++{
		t := (*data)[i].(map[string]interface{})
		if nil != t {
			msg := &pb.VideoSearchResult{}
			msg.VideoName = t["title"].(string)
			msg.Actors = t["actor"].(string)
			msg.Director = t["director"].(string)
			msg.PicUrl = t["pic"].(string)
			msg.VideoUrl = t["href"].(string)
			msgData.Results = append(msgData.Results,msg)
		}
	}

	m._Logic.SendToClientMsg(pb.EC_Code_EC_VideoSearchResult_GC,s.GetUID(),msgData)

golang调用python简单基本就是这样的
python 引用了这些库,有的是python中自带的,有的属于第三方的

import requests
import base64
from bs4 import BeautifulSoup
import sys
import json

直接调用就会出现,
CmdPythonVideoSpider ==> exit status =1 的错误
这里我大胆猜测是,第三方库找不到报错的。
验证猜想

def AddFunc(a,b):
	return a+b

这里在golang中调用这个函数一切成功,于是我将python的第三方库复制到了python脚本目录