本文介绍如何安装Python SDK。

环境准备

OSS Python SDK适用于Python 2.6、2.7、3.3、3.4、3.5、3.6、3.7、3.8版本。

  • 安装环境

    根据Python官网的引导安装合适的Python版本。

  • 查看版本

    执行命令python -V查看Python版本。

    Windows环境中,如果提示“不是内部或外部命令”,请在环境变量中编辑Path,增加Python和pip的安装路径。pip的安装路径一般为Python所在目录的Scripts文件夹。

    说明 您可能需要重启电脑使环境变量生效。

下载SDK

更多信息请参见OSS API文档

安装python-devel

由于SDK需要crcmod库计算CRC校验码,而crcmod依赖Python.h文件,如果系统缺少这个头文件,安装SDK不会失败,但crcmod的C扩展模式安装会失败,因此导致上传、下载等操作效率非常低下。如果python-devel包不存在,则首先要安装这个包。

  • 对于Windows和Mac OS X系统,由于安装Python的时候会将Python依赖的头文件一并安装,因此您无需安装python-devel。
  • 对于CentOS、RHEL、Fedora系统,请执行以下命令安装python-devel:
    yum install python-devel
  • 对于Debian,Ubuntu系统,请执行以下命令安装python-devel:
    apt-get install python-dev

安装SDK

  • 通过pip安装

    执行命令如下:

    pip install oss2
    说明 如果您的环境尚未安装pip,请参见 pip官网安装。
  • 通过源码安装

    GitHub下载相应版本的SDK包,解压后进入目录,确认目录下有setup.py文件,然后执行命令如下:

    python setup.py install

验证

  • 验证SDK版本
    1. 在命令行输入python并回车,进入Python环境。
    2. 执行以下命令检查SDK版本:
      >>> import oss2
      >>> oss2.__version__
      '2.0.0'

      上面的输出表明您已经成功安装了Python SDK 2.0.0。

  • 验证crcmod

    OSS的CRC数据校验有两种方式:C扩展模式(通过SDK的依赖库crcmod调用扩展库_crcfunext.so计算CRC)和纯Python模式。前者的性能远优于后者。安装oss2时会自动安装crcmod。crcmod详情请参见crcmod introduction

    如果发现安装SDK之后调用上传、下载接口较其他工具如ossutil或者其他SDK慢了很多,有可能是安装SDK的依赖库crcmod的C扩展模式失败,导致在上传、下载计算CRC校验码时采用了纯Python模式。

    验证crcmod的C扩展模式是否安装成功的方法如下:

    1. 在命令行输入python并回车,进入Python环境。
    2. 输入import crcmod._crcfunext并回车。
      • 如果没有出现错误提示,则表明crcmod库的C扩展模式安装成功。
      • 如果出现以下错误提示,则表明crcmod库的C扩展模式安装失败。
        >>> import crcmod._crcfunext
        Traceback (most recent call last):
        File "<stdin>", line 1, in <module>
        ImportError: No module named _crcfunext

        出现这种情况的原因是编译crcmod时,由于_crcfunext.so依赖Python.h文件,而系统中缺少这个头文件,因此_crcfunext.so库生成失败。CRC数据校验就会使用纯Python方式。虽然SDK安装成功,但是上传、下载等操作的效率非常低下。

        如果出现该问题,请执行以下步骤:

        1. 执行以下命令卸载crcmod:
          pip uninstall crcmod
        2. 安装python-devel
        3. 执行以下命令重新安装crcmod:
          pip install crcmod

          如果执行上述步骤依然安装失败,请卸载crcmod,然后执行以下命令查看安装失败的详细原因:

          pip install crcmod -v

卸载SDK

如果安装失败,建议通过pip卸载然后重装。卸载命令如下:

pip uninstall oss2