virtualenv - 七牛云存储上传失败,python代码
阿神
阿神 2017-04-18 09:45:12
[Python讨论组]
Traceback (most recent call last):
  File "D:/pyprojects/qiniu/demo.py", line 26, in <module>
    ret, info = put_file(token, key, localfile)
  File "D:\Python\python34\lib\site-packages\qiniu\services\storage\uploader.py", line 64, in put_file
    ret, info = _form_put(up_token, key, input_stream, params, mime_type, crc, progress_handler, file_name)
  File "D:\Python\python34\lib\site-packages\qiniu\services\storage\uploader.py", line 80, in _form_put
    url = config.get_default('default_zone').get_up_host_by_token(up_token) + '/'
  File "D:\Python\python34\lib\site-packages\qiniu\zone.py", line 30, in get_up_host_by_token
    up_hosts = self.get_up_host(ak, bucket)
  File "D:\Python\python34\lib\site-packages\qiniu\zone.py", line 49, in get_up_host
    bucket_hosts = self.get_bucket_hosts(ak, bucket)
  File "D:\Python\python34\lib\site-packages\qiniu\zone.py", line 71, in get_bucket_hosts
    bucket_hosts = self.get_bucket_hosts_to_cache(key)
  File "D:\Python\python34\lib\site-packages\qiniu\zone.py", line 91, in get_bucket_hosts_to_cache
    self.host_cache_from_file()
  File "D:\Python\python34\lib\site-packages\qiniu\zone.py", line 107, in host_cache_from_file
    path = self.host_cache_file_path()
  File "D:\Python\python34\lib\site-packages\qiniu\zone.py", line 124, in host_cache_file_path
    return home + "/.qiniu_pythonsdk_hostscache.json"
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

我用官方在github上得代码,我看源码是HOME环境变量没设置,这个怎么破?
我用的py3.4

阿神
阿神

闭关修行中......

全部回复(2)
巴扎黑
官方的代码没有设置HOME变量是留给你自己设置自己对应的,其次,你可以查看官方接入文档说明。一般也就需要开发者的secretKey-通过鉴权。最后还是不能你可以去隔壁论坛问他们API的开发人员,一般都会帮助你解决的。

----------

七牛开发者文档-Python SDK使用指南:http://developer.qiniu.com/code/v7/sdk/python.html
七牛开发者论坛:https://segmentfault.com/qiniu
黄舟

在自己环境里面也试了一下:
Windows10 64Bits
Python3.5.2
也会报这个问题,再手动添加一个环境变量HOME之后,此问题得到解决:

另外在Linux环境下也分别试了:
Python2.7.8和Python3.5.2
均未出现此问题。

Root Cause还是环境变量的问题:

def host_cache_file_path(self):
    home = os.getenv("HOME")
    # 如果环境变量不存在的话,home是None,导致报错
    return home + "/.qiniu_pythonsdk_hostscache.json"

在我的环境里,默认情况下:

  • Linux

(py3env) [root@iZ94dn8i2nsZ py]# echo $HOME
/root
  • Windows环境下没有设置HOME环境变量

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号