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