CentOS6.命令行编译media_upload.py

1、是在 使用 微信 的 “5.1 新建临时素材” 是使用这个的

  PS:CentOS6.4 里面的 Python 貌似是 2.6版本的

 在编译 media_upload.py的时候,说 缺少 poster,于是搜索 怎么安装...

2、在 https://pypi.org/project/poster/#files,下载了 poster-0.8.1-py2.6.egg,但是 不成功...

  看的是这个文章:Python使用poster - evsqiezi - CSDN博客.html(https://blog.csdn.net/evsqiezi/article/details/70919273

poster提供了一组 Python 类和函数用来处理使用标准 multipart/form-data 编码的 HTTP POST 请求,也就是 HTTP 文件上传请求。
1 安装poster 点https://pypi.python.org/pypi/setuptools 。 点setuptools的install链接。 另存ez_setup.py。 执行python ez_setup.py,这样setuptools就装成功。
2安装poster 点:https://pypi.python.org/pypi/poster/,下载poster。 执行easy_install.exe poster-0.8.1-py2.7.egg
3上传图片。 如果机器上有 PycURL,那么可以使用 PycURL 来上传文件。 不过,由于 PycURL 需要用到 curl,在 Windows 下安装可能会有点麻烦,除 PycURL 外,也有一些其它实现 POST 文件上传的方式,比如 这儿 的 2 楼有人贴出了一个将文件进行编码之后再 POST 的方法,另外还有 MultipartPostHandler、urllib2_file、poster 等 第三方模块。但 MultipartPostHandler 这个模块似乎比较老了,urllib2_file 我试用了一下遇到错误没有成功,这儿我想介绍的是另外一个第三方模块 poster。 如果机器上安装了 Python 的 setuptools,可以通过下面的命令来安装 poster: easy_install poster 装完之后,就可以像下面这样上传文件了: # test_client.py from poster.encode import multipart_encode from poster.streaminghttp import register_openers import urllib2 # 在 urllib2 上注册 http 流处理句柄 register_openers()                                  // ZC: 看这个函数的解释,media_upload.py里面也有这一句 当时看到不知道是干嘛的 # 开始对文件 "DSC0001.jpg" 的 multiart/form-data 编码 # "image1" 是参数的名字,一般通过 HTML 中的 标签的 name 参数设置 # headers 包含必须的 Content-Type 和 Content-Length # datagen 是一个生成器对象,返回编码过后的参数 datagen, headers = multipart_encode({"image1": open("DSC0001.jpg", "rb")}) # 创建请求对象 request = urllib2.Request("http://localhost:5000/upload_image", datagen, headers) # 实际执行请求并取得返回 print urllib2.urlopen(request).read() 很简单,文件就上传完成了。 其中那个 register_openers() 相当于以下操作: 另外,poster 也可以携带 cookie,比如: opener = poster.streaminghttp.register_openers() opener.add_handler(urllib2.HTTPCookieProcessor(cookielib.CookieJar())) params = {'file': open("test.txt", "rb"), 'name': 'upload test'} datagen, headers = poster.encode.multipart_encode(params) request = urllib2.Request(upload_url, datagen, headers) result = urllib2.urlopen(request)

  ZC:当时看这个文章的时候,是 poster没有安装成功,现在 想想 可能失败的原因 也可能是 域名变化了,文章上的网址"https://pypi.python.org/pypi/poster/"  现在(20181226)自动转到"https://pypi.org/project/poster/"了  (貌似可能 不是这个原因... 记忆中,应该是 执行命令"easy_install poster-0.8.1-py2.7.egg"时 出错了...)

 

  2.1、上面 没有 安装成功,于是使用了下面文章的方式:CentOS中安装easy_install - 如山石的系统虚拟化之路 - CSDN博客.html(https://blog.csdn.net/maokexu123/article/details/38818615

    使用命令:yum install python-setuptools,安装了 easy_install

    

  2.2、执行命令"easy_install poster-0.8.1-py2.7.egg"时 出错,记忆中 应该是 urllib2(好像是这个东西) 下载还是什么(反正是联网了) 出现了 SSL的错误,后来就没用这个方式安装poster了...

3、上面 poster没装成功

  但是,后来 命令行 "python media_upload.py"确可以成功了,忘了是 做了什么操作 使得 poster 可以用了...

4、

5、

 

posted @ 2018-12-26 14:17  pythonz  阅读(292)  评论(0编辑  收藏  举报