pythonsdk调用
Ⅰ Pycharm中无法设置python SDK怎么解决
Pycharm中无法设置python SDK解决方法:
打开File->点击“Settings”
找到“Project Interpreters”,然后在该对掘橡旅话框中点击“Project Interpreter”选项。
点击右边的“+”,添加对应版本的解判凳释器。
添加对应版本的解释器,再点击“OK”完成配置。
PyCharm是一种PythonIDE(Integrated Development Environment,集成开发环境),带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制。
此外,该IDE提供了一些高级功能,以用于支如敬持Django框架下的专业Web开发。
总结如下:
PyCharm是由JetBrains打造的一款Python IDE,VS2010的重构插件Resharper就是出自JetBrains之手。
同时支持Google App Engine,PyCharm支持IronPython。这些功能在先进代码分析程序的支持下,使 PyCharm 成为 Python 专业开发人员和刚起步人员使用的有力工具。
Ⅱ 1688sdk怎么使用python
1、首先下载1688sdk的核心库,并将其安装在桌面上。
2、其次打开1688sdk的核心库,创建实例,将Python软件中的相关信息导入核心轮闹库中。
3、最后在1688sdk的核心库发起请求,并等待处型闭理,处理完成后,重新将其打开腊租罩即可。
Ⅲ python调用宇视SDK登录报错问题
NETDEV_Init 初始化
NETDEV_Login_V30 ipc设备登录
NETDEV_QueryVideoChlDetailList 查询视频通道信息列表
NETDEV_CaptureNoPreview 设备抓图
使用restype 设置接收参数的类型
HIKSDK.NETDEV_Login_V30.restype = ctypes.c_void_p
假如不设置接简指键收参数的类逗销型,会抛出异常:内存地址不一致
指针类型作为返回值传递给python时,在未设置类型的时拦巧候,会发生默认截断的问题
sdk日志:
python日志:101200(用户不在线)
https://docs.python.org/3.6/library/ctypes.html#fundamental-data-types
http://icejoywoo.github.io/2018/12/10/intro-python-ctyps.html
Ⅳ 如何用python调用百度语音识别
1、首先需要打开网络AI语音系统,开始编写代码,如图所示,编写好回车。
Ⅳ python sdk 怎么用
sdk里面有demo代码么,有的话让察仿照着import即可敏滑巧。如果sdk里面有setup.py这个桥键文件,那就是需要安装的。用命令行cd到这个文件夹,然后执行Python setup.py install即可
Ⅵ 我想自己写一个python函数封装成SDK方便以后调用,但是在这个函数编写引入了不少import包,该怎么操作
写最上面。写里面有可能会重复import同一个包,浪费内存
Ⅶ 如何使用七牛Python SDK写一个同步脚本及使
七牛云存储的 Python 语言版本 SDK(本文以下称 Python-SDK)是对七牛云存储API协议的一层封装,以提供一套对于 Python 开发者而言简单易用的开发工具。Python 开发者在对接 Python-SDK 时无需理解七牛云存储 API 协议的细节,原则上也不需要对 HTTP 协议和原理做非常深入的了解,但如果拥有基础的 HTTP 知识,对于出错场景的处理可以更加高效。
最近刚搭了个markdown静态博客,想把图片放到云存储中。
经过调研觉得七牛可以满足我个人的需求,就选它了。
要引用图片就要先将图片上传到云上。
虽然七牛网站后台可以上传文件,但每次上传都需要先登录,然后选择图片,设置连接地址,才能上传。
这个过程有些繁琐,所以我便想用七牛云提供的SDK写个一同步工具,方便增量同步文件。
有了这个想法,就马上行动。花了大概一个上午的时间,总算把这个工具给写出来,并放到GitOSC和github上。
?
#!/usr/bin/env python#-*- coding:utf-8 -*-## AUTHOR = "heqingpan"# AUTHOR_EMAIL = "[email protected]"# URL = "http://git.oschina.net/hqp/qiniu_sync"import qiniufrom qiniu import Authfrom qiniu import BucketManagerimport osimport reaccess_key = ''secret_key = ''bucket_name = ''bucket_domain = ''q = Auth(access_key, secret_key)bucket = BucketManager(q)basedir=os.path.realpath(os.path.dirname(__file__))filename=__file__ignore_paths=[filename,"{0}c".format(filename)]ignore_names=[".DS_Store",".git",".gitignore"]charset="utf8"diff_time=2*60def list_all(bucket_name, bucket=None, prefix="", limit=100):rlist=[]if bucket is None:bucket = BucketManager(q)marker = Noneeof = Falsewhile eof is False:ret, eof, info = bucket.list(bucket_name, prefix=prefix, marker=marker, limit=limit)marker = ret.get('marker', None)for item in ret['items']:rlist.append(item["key"])if eof is not True:# 错误处理#print "error"passreturn rlistdef get_files(basedir="",fix="",rlist=None,ignore_paths=[],ignore_names=[]):if rlist is None:rlist=[]for subfile in os.listdir(basedir):temp_path=os.path.join(basedir,subfile)tp=os.path.join(fix,subfile)if tp in ignore_names:continueif tp in ignore_paths:continueif os.path.isfile(temp_path):rlist.append(tp)elif os.path.isdir(temp_path):get_files(temp_path,tp,rlist,ignore_paths,ignore_names)return rlistdef get_valid_key_files(subdir=""):basedir=subdir or basedirfiles = get_files(basedir=basedir,ignore_paths=ignore_paths,ignore_names=ignore_names)return map(lambda f:(f.replace("\","/"),f),files)def sync():qn_keys=list_all(bucket_name,bucket)qn_set=set(qn_keys)l_key_files=get_valid_key_files(basedir)k2f={}update_keys=[]u_count=500u_index=0for k,f in l_key_files:k2f[k]=fstr_k=kif isinstance(k,str):k=k.decode(charset)if k in qn_set:update_keys.append(str_k)u_index+=1if u_index > u_count:u_index-=u_countupdate_file(k2f,update_keys)update_keys=[]else:# uploapload_file(k,os.path.join(basedir,f))if update_keys:update_file(k2f,update_keys)print "sync end"def update_file(k2f,ulist):ops=qiniu.build_batch_stat(bucket_name,ulist)rets,infos = bucket.batch(ops)for i in xrange(len(ulist)):k=ulist[i]f=k2f.get(k)ret=rets[i]["data"]size=ret.get("fsize",None)put_time = int(ret.get("putTime")/10000000)local_size=os.path.getsize(f)local_time=int(os.path.getatime(f))if local_size==size:continueif put_time >= local_time - diff_time:# is newcontinue# updateupload_file(k,os.path.join(basedir,f))def upload_file(key,localfile):print "upload_file:"print keytoken = q.upload_token(bucket_name, key)mime_type = get_mime_type(localfile)params = {'x:a': 'a'}progress_handler = lambda progress, total: progressret, info = qiniu.put_file(token, key, localfile, params, mime_type, progress_handler=progress_handler)def get_mime_type(path):mime_type = "text/plain"return mime_typedef main():sync()if __name__=="__main__":main()这个同步脚本支持批量比较文件,差异增量更新、批量更新。
使用方式
安装七牛Python SDK
?
1pip install qiniu填写脚本文件(qiniusync.py)的配置信息
?
123access_key = ''secret_key = ''bucket_name = ''注册后可以拿到对应的信息
将脚本文件(qiniusync.py)拷贝到待同步根目录
运行脚本
?
1python qiniusync.py后记
写完提交之后才发现,七牛已经提供相应的工具,我这个算是重复造轮子吧。
既然已经写,就发出来,当做熟悉一下七牛的SDK也不错,说不定以后还能用的上。
七牛云存储Python SDK使用教程
本教程旨在介绍如何使用七牛的Python SDK来快速地进行文件上传,下载,处理,管理等工作。
安装
首先,要使用Python的SDK必须要先安装。七牛的Python SDK是开源的,托管在Github上面,项目地址为https://github.com/qiniu/python-sdk。
安装的方式可以如项目的说明上所说,用 pip install qiniu 。当然也可以直接 clone 一份源代码下来直接使用。我一般喜欢直接 clone 源代码,这样的话,如果要对SDK做一些改动也是十分容易的。
最新版本的Python SDK需要依赖 requests 库,所以要提前安装好。安装方式当然也可以用 pip install requests 。
开发环境
Python的开发环境有很多种选择,如果喜欢文本的方式,比如vim,emacs,sublime text等都是很好的选择,如果你喜欢IDE,那么最流行的莫过于 PyCharm 了。 PyCharm 的最新版本到这里下载。
Access Key和Secret Key
我们知道七牛云存储的权限校验机制基于一对密钥,分别称为 Access Key 和 Secret Key 。其中 Access Key 是公钥, Secret Key 是私钥。这一对密钥可以从七牛的后台获取。
小试牛刀
好了,做了上面的这些准备工作,我们就去上传一个简单的文件,练练手。
?
1234python#coding=utf-8__author__ = 'jemy''''本例演示了一个简单的文件上传。
这个例子里面,sdk根据文件的大小选择是Form方式上传还是分片上传。
?
'''import qiniuaccessKey = "<Your Access Key>"secretKey = "<Your Secret Key>"#解析结果def parseRet(retData, respInfo):if retData != None:print("Upload file success!")print("Hash: " + retData["hash"])print("Key: " + retData["key"])#检查扩展参数for k, v in retData.items():if k[:2] == "x:":print(k + ":" + v)#检查其他参数for k, v in retData.items():if k[:2] == "x:" or k == "hash" or k == "key":continueelse:print(k + ":" + str(v))else:print("Upload file failed!")print("Error: " + respInfo.text_body)#无key上传,http请求中不指定key参数def upload_without_key(bucket, filePath):#生成上传凭证auth = qiniu.Auth(accessKey, secretKey)upToken = auth.upload_token(bucket, key=None)#上传文件retData, respInfo = qiniu.put_file(upToken, None, filePath)#解析结果parseRet(retData, respInfo)def main():bucket = "if-pbl"filePath = "/Users/jemy/Documents/jemy.png"upload_without_key(bucket, filePath)if __name__ == "__main__":main()运行结果为:
Upload file success!
Hash: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
Key: Fp0XR6tM4yZmeiKXw7eZzmeyYsq8
从上面我们可以看到,使用七牛的Python SDK上传文件的最基本的步骤是:
1.生成上传凭证
2.上传文件
3.解析回复结果
Ⅷ 求解释python调用api的方法
http://developer.qiniu.com/docs/v6/sdk/python-sdk.html
Ⅸ 如何通过python调用新浪微博的API
1.下载SDK
使用python调用API的话,首先要去下一个Python的SDK,sinaweibopy
连接地址在此: http://michaelliao.github.com/sinaweibopy/
可以使用pip很快的导入,github连接里的wiki也有入门的使用方法,很容易看懂。
2.理解新浪微博的授权机制
在调用API之前,首先要搞懂什么叫OAuth 2,即新浪微博的授权机制,
连接在此: http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
3.在新浪微博注册应用
每个人都可以通过新浪微博开发者平台注册自己的应用,我注册的是站内应用。注册后会为每个应用分配唯一的app key 和 app secret,这在上文提到的授权机制中需要用到,相当与每个应用的标示吧。
至此,我们可以尝试写代码调用新浪微博的API啦。
4.简单的调用API实例
参考了往上很多资料和文档,写了一个简单的调用过程。
# _*_ coding: utf-8 _*_
from weibo import APIClient
import webbrowser
APP_KEY = ”
APP_SECRET = ”
CALLBACK_URL = ”
#这个是设置回调地址,必须与那个”高级信息“里的一致
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
url = client.get_authorize_url()
# TODO: redirect to url
#print url
webbrowser.open_new(url)
# 获取URL参数code:
code = ‘‘
client = APIClient(app_key=APP_KEY, app_secret=APP_SECRET, redirect_uri=CALLBACK_URL)
r = client.request_access_token(code)
access_token = r.access_token # 新浪返回的token,类似abc123xyz456
expires_in = r.expires_in # token过期的UNIX时间:http://zh.wikipedia.org/wiki/UNIX%E6%97%B6%E9%97%B4
# TODO: 在此可保存access token
client.set_access_token(access_token, expires_in)
print client.friendships.friends.bilateral.ids.get(uid = 12345678)
通过以上的代码,我实现了调用相互关注API的调用,即查找与某个id的用户相互关注的人的列表。
其中,APP_KEY和APP_SECRET就是前文中分配给每个应用的信息,回调地址在每个应用的高级信息中可以看到,需要自己设置,不过随便设置一下就好
比较恶心的是code的获取,我一开始看sinaweibopy的文档的时候也没弄懂是什么意思,如上面的代码所示,url得到的是一个授权的网址,我们通过
webbrowser.open_new(url)
这行代码打开浏览器跳转到授权的界面,然后观察所在界面的网址,会显示大概如下一样的格式:
http://apps.weibo.com/sayarywei?code=
看到了吗?
问号后面有一个code=……的一个东西,把等号后面的字符串拷贝下来赋给code就可以了,但是每次运行程序是code不是一成不变的,也就是说每次都
要有这么一个手动获取的过程,我觉得很麻烦,以后自己再研究一下,实现自动获取code就好了。如果能有哪位大神告诉我,感激不尽~
好了,得到正确的code之后就可以完成授权认证,也就可以调用微博的API啦,至于如何在Python下调用,我拷贝一下sinaweibopy上的介绍:
首先查看新浪微博API文档,例如:
API:statuses/user_timeline
请求格式:GET
请求参数:
source:string,采用OAuth授权方式不需要此参数,其他授权方式为必填参数,数值为应用的AppKey?。
access_token:string,采用OAuth授权方式为必填参数,其他授权方式不需要此参数,OAuth授权后获得。
uid:int64,需要查询的用户ID。
screen_name:string,需要查询的用户昵称。
(其它可选参数略)
调用方法:将API的“/”变为“.”,根据请求格式是GET或POST,调用get ()或post()并传入关键字参数,但不包括source和access_token参数:
r = client.statuses.user_timeline.get(uid=123456)
for st in r.statuses:
print st.text
若为POST调用,则示例代码如下:
r = client.statuses.update.post(status=u'测试OAuth 2.0发微博')
若需要上传文件,传入file-like object参数,示例代码如下:
f = open('/Users/michael/test.png', 'rb')
r = client.statuses.upload.post(status=u'测试OAuth 2.0带图片发微博', pic=f)
f.close() # APIClient不会自动关闭文件,需要手动关闭
请注意:上传的文件必须是file-like object,不能是str,因为无法区分一个str是文件还是字段。可以通过StringIO把一个str包装成file-like object。
Ⅹ 如何使用万象优图服务的 Python SDK
1、开发准备
在使用万象优图服务的 python sdk 前,你需要先下载 python sdk,下载地址:github地址
1.1 前期准备
获取项目ID(appid),bucket,secret_id和secret_key;
1.2 获取SDK方法
pip获取:
在开发环境命令行直接执行下面的命令即可导入 python-sdk 包。
pip install tencentyun
然后,参考api说明和sdk中提供的sample,开发代码即可。sample对应v1版本的restful api, samplev2对应v2版本的restful api。
直接下载源码集成:
您也可以直接下载github上提供的源代码,集成到您的开发环境即可(依赖requests)。
2、 API详细说明
2.1 生成签名
1.接口说明
签名生成方法,可以在服务端生成签名,供移动端app使用。
其中签名分为2种:
多次有效签名(有一定的有效时间)
单次有效签名(绑定资源url,只能生效一次)
签名的详细描述及使用场景参见鉴权服务技术方案。
2. 方法
签名函数会自动根据传入的URL,进行不同方式的签名,这里对使用者是透明的。
V2加强版的签名:
def get_app_sign_v2(bucket, fileid, expired)
V2版本的签名:
def app_sign_v2(self, url, expired=0)
V1版本的签名:
def app_sign(self, url, expired=0)
3. 参数和返回值
参数说明:
参数名
类型
必须
默认值
参数描述
url String 是 无 需要操作的url
expired Int 是 无 签名过期时间戳
返回值:
参数名
类型
参数描述
httpcode Int http响应码,请求正常时为200
code Int API 错误码,成功时为0
message String API错误信息
data Array API 返回数据
data.sign String 签名串
示例代码:
# 生成私密下载url
auth = tencentyun.Auth(secret_id,secret_key)
expired = int(time.time()) + 999
sign = auth.get_app_sign_v2(bucket, fileid, expired)
download_url = statRet['data']['download_url']
print 'download_url:', download_url + '?sign=' + sign
# 生成上传签名
fileid = 'sample'+str(int(time.time()))
expired = int(time.time()) + 999
sign = auth.get_app_sign_v2(bucket, fileid, expired)
print fileid, sign
2.2 图片上传
1. 接口说明
用于图片的上传,调用者可以通过此接口上传图片并获得图片的url和唯一标识fileid(用于调用其他api)。
2. 方法
def upload(self, filepath, bucket, fileid='', userid='0', magic_context='', params={})
def upload_binary(self, file_binary, bucket, fileid = '', userid = '0', magic_context = '', params = {})
3. 参数和返回值
参数说明:
参数名
类型
必须
默认值
参数描述
filePath String 是 无 本地图片文件路径
file_binary String 是 无 base64编码后的字符串数据
bucket String 是 无 空间名称
fileid String 否 空 用户自定义文件名
userid String 否 0 开发者的账号体系的userid, 如果没有,请使用默认值0
magicContext String 否 空 上传成功后,用户自定义的回调参数
params array 否 空数组 可选处理项,目前支持params[‘get’] => array() 用于指定上传是url中携带的get请求参数
返回值:
参数名
类型
参数描述
httpcode Int http响应码,请求正常时为200
code Int API 错误码,成功时为0
message String API错误信息
data Dict API 返回数据
data.url String 图片的管理URL
data.downloadUrl String 图片的下载和访问URL
data.fileid String 图片的唯一ID
data.info.0.0.width int 图片宽度
data.info.0.0.height int 图片高度
示例代码:
image = tencentyun.ImageV2(appid,secret_id,secret_key)
obj = image.upload('/tmp/amazon.jpg', bucket, fileid);
print obj
2.3 图片复制
1. 接口说明
用于图片的复制,调用者可以通过此接口复制已经上传的图片并获得新图片的url和唯一标识fileid(用于调用其他api)。
2. 方法
def (self, bucket, fileid, userid='0')
3. 参数和返回值
参数说明:
参数名
类型
必须
默认值
参数描述
bucket String 是 无 空间名称
fileid String 是 无 图片唯一ID
userid String 否 0 开发者的账号 体系的userid, 如果没有,请使用默认值0
返回值:
参数名
类型
参数描述
httpcode Int http响应码,请求正常时为200
code Int API 错误码,成功时为0
message String API错误信息
data Dict API 返回数据
data.downloadUrl String 图片的下载和访问URL
data.url String 管理url
示例代码:
// 复制
Ret = image.(bucket, fileid)
download_url = Ret['data']['download_url']
print Ret
2.4 图片查询
1. 接口说明
用于图片的查询,调用者可以通过此接口查询已经上传的图片并获得图片的各种参数信息。
2. 方法
def stat(self, bucket, fileid, userid='0')
3. 参数和返回值
参数说明:
参数名
类型
必须
默认值
参数描述
bucket String 是 无 空间名称
fileid String 是 无 图片唯一ID
userid String 否 0 开发者的账号体系的userid, 如果没有,请使用默认值0
返回值:
参数名
类型
参数描述
httpcode Int http响应码,请求正常时为200
code Int API 错误码,成功时为0
message String API错误信息
data Dict API 返回数据
data.downloadUrl String 图片的下载和访问URL
data.url String 管理url
data.fileid String 图片的唯一ID
data.upload_time String 图片的上传时间
data.size String 图片的大小(Bytes)
data.md5 String 图片的md5值
data.md5 String 图片的md5值
data.width String 图片的宽度(pixels)
data.height String 图片的高度(pixels)
示例代码:
// 查询管理信息
statRet = image.stat(bucket, fileid)
2.5 图片删除
1. 接口说明
用于图片的删除,调用者可以通过此接口删除已经上传的图片。
2. 方法
def delete(self, bucket, fileid, userid='0')
3. 参数和返回值
参数说明:
参数名
类型
必须
默认值
参数描述
bucket String 是 无 空间名称
fileid String 是 无 图片唯一ID
userid String 否 0 开发者的账号体系的userid, 如果没有,请使用默认值0
返回值:
参数名
类型
参数描述
httpcode Int http响应码,请求正常时为200
code Int API 错误码,成功时为0
message String API错误信息
data Dict 空字典
示例代码:
print image.delete(bucket, fileid)
2.6 图片下载
图片的下载直接使用图片下载url进行下载,
请求示例:
GET test0706-10000037.image.myqcloud.com/tencentyunRestfulAPITest HTTP/1.1
Host: test0706-10000037.image.myqcloud.com
如果在控制台上面设置了空间样式或者样式下载别名,并且设置了样式分隔符,则访问样式图片的方式如下:
download_url+样式分隔符+样式名。
注:空间样式和样式下载别名的名字统称样式名。
例如设置了样式名“160x160.jpeg”,样式分隔符“/”,则样式图片的访问方式如下:
GET v2test-10000812.image.myqcloud.com/tencentyunRestfulAPITest/160x160.jpeg HTTP/1.1
Host: v2test-10000812.image.myqcloud.com/
若开启了token防盗链,图片下载只能是私密下载,即必须download_url +?sign=[签名]。
请求示例:
GET HTTP/1.1
Host: test0706-10000037.image.myqcloud.com