virtualenv - 七牛云存储上传失败,python代码

 手机用户2502854251 发布于 2022-10-27 09:32
Traceback (most recent call last):
  File "D:/pyprojects/qiniu/demo.py", line 26, in 
    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 个回答
  • 在自己环境里面也试了一下:
    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环境变量

    2022-10-27 09:32 回答
  • 官方的代码没有设置HOME变量是留给你自己设置自己对应的,其次,你可以查看官方接入文档说明。一般也就需要开发者的secretKey-通过鉴权。最后还是不能你可以去隔壁论坛问他们API的开发人员,一般都会帮助你解决的。
    
    ----------
    
    七牛开发者文档-Python SDK使用指南:http://developer.qiniu.com/code/v7/sdk/python.html
    七牛开发者论坛:https://segmentfault.com/qiniu
    2022-10-27 09:32 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有