本文介绍如何安装Python SDK。

环境准备

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

  • 安装环境

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

    重要 在Windows平台安装Python SDK时,需确保Visual C++为15.0或以上版本。
  • 查看版本

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

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

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

下载SDK

安装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。
    sudo yum install python-devel                 
  • 对于Debian,Ubuntu系统,请执行以下命令安装python-devel。
    sudo apt-get install python-dev                  

安装SDK

  • 通过pip安装

    执行命令如下:

    pip install oss2                   
    说明 Python 2.7.9+或者Python 3.4+以上版本默认已安装pip,如果您的环境尚未安装pip,请参见pip官网安装。
  • 通过源码安装

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

    python setup.py install
                        

验证

重要 如果执行程序时出现No module named 'Crypto'错误,请查看本地Python安装路径下是否存在Crypto(参考路径:D:\python3.9\Lib\site-packages)。如果不存在则执行python -m pip install --upgrade setuptools命令,如果存在crypto(首字母小写),请将首字母改为大写,再次尝试启动程序。
  • 验证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安装成功,但是上传、下载等操作的效率低下。

        对于Windows系统,如果出现该问题,请下载crcmod-1.7.win32-py2.7.msi或者其他版本的.msi文件进行安装,并在安装过程中指定crcmod的安装路径到您本地python安装路径下的Lib\site-packages文件夹,例如D:\python\Lib\site-packages\。安装完成后,再执行验证crcmod的步骤。

        说明 win32位的crcmod同时兼容win32以及win64系统。

        对于Linux系统,如果出现该问题,请执行以下步骤:

        1. 执行以下命令卸载crcmod。
          pip uninstall crcmod
        2. 安装python-devel。具体操作,请参见安装python-devel
        3. 执行以下命令重新安装crcmod。
          pip install crcmod

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

          pip install crcmod -v

卸载SDK

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

pip uninstall oss2