python 软件离线安装(boto3为例)

由于boto无法支持bucket的大写名称, 所以使用boto3进行代替, 看了大量的贴子和boto3的官网, 发现boto3的安装方式都是使用pip工具进行安装(pip install boto3), 但是我们的存储无法进行外网连接, 所以还是需要通过rpm包的方式进行安装

但是boto3官网没有提供boto3的rpm包, 所以通过rpm search搜索到(搜索到的boto3版本有限), 如下图

 

在进行安装的时候, 发现这个包依赖其他包python包,比如python2-botocore-1.4.43-1.el7.noarch.rpm, python-dateutil-1.5-7.el7.noarch.rpm等, 而且被依赖的包又依赖于其他的rpm包, 包的依赖会花费大量时间去寻找, 而且因为python版本的问题, 使用的包不一定对. 如果不关系依赖使用—nodeps选项又会存在一定的风险, 所以经过搜索资料, 通过pip工具可以解决以上问题

 

 

下面是步骤

1, 找一台能够上外网的虚拟机, 使用pip命令下载boto3到一个文件夹中(如果系统没有pip工具, 需要进行安装, 安装方式见最后的注解)

pip install --download  /root/boto3/  boto3

 

2, 将/root/boto3拷贝到需要安装boto3的机器

pip install --no-index --find-links=/root/boto3 boto3

终端会提示一系列的输入然后提示成功, 如下图

 

 

3, 通过下面脚本的测试, boto3正常使用(centos7.0 centos7.2)

#!/usr/bin/env python

# coding=utf-8

 

import boto3

 

def main():

    access_key = 'F15H3USA99CU18958G9Y'

    secret_key = 'bAVSSWtx1FmfT8Y3dhXuj9WBlwzQZqcaSHb25RDw'

    s3_host = 'http://10.192.52.167:7480'

 

bucket_name = 'BBBB'

 

    s3client = boto3.client('s3',

    aws_secret_access_key = secret_key,

    aws_access_key_id = access_key,

    endpoint_url = s3_host)

 

    response = s3client.list_buckets()

    # list bucket

    for bucket in response['Buckets']:

        print format(bucket['Name'])

 

    #creating a bucket

    response = s3client.create_bucket(Bucket = bucket_name)

    print "Creating bucket {0} returns => {1}\n".format(bucket_name, response)

 

if __name__ == '__main__':

    main()

 

注:

如果系统提示没有pip命令, 可以通过下面的方式解决

通过http://rpm.pbone.net/index.php3/stat/4/idpl/40723940/dir/centos_7/com/python-pip-8.1.2-1.el7.noarch.rpm.html 下载rmp包, 拷贝到设备上使用rpm -i python-pip-8.1.2-1.el7.noarch.rpm命令执行

猜你喜欢

转载自blog.csdn.net/b779789251/article/details/88396245
今日推荐