• Python 离线环境


    一、应用场景

    比如:对于数据安全要求比较严格的机房,服务器是不允许上网的。那么我现在开发了一套python程序,需要一些模块,怎么运行?

    二、离线包制作

    有2个解决方案:

    1. 使用requirement.txt离线安装打包好的包whl

    请参考链接:
    https://blog.csdn.net/wangyaninglm/article/details/54177720

    这种方案,我一直没有测试成功,为什么?

    因为某些whl文件,使用pip download下载不来,提示not found

    好吧,我果断放弃了!

    2. 使用虚拟环境virtualenv

    我测试了一下,运行正常!

    注意:必须保证服务器,已经安装好了python3和pip3。

    如果是ubuntu系统,需要离线安装,请参考链接:

    https://www.cnblogs.com/xiao987334176/p/9875480.html

    下面详细介绍整个过程!

    虚拟环境virtualenv

    环境说明

    系统是 ubuntu-16.04.5-server-amd64,默认已经安装好了python3,版本为3.5.2

    已经安装好了python3-pip,版本为8.1.1

    sudo apt-get install -y python3-pip

    如果提示

    E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
    E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

    使用以下命令处理

    sudo rm /var/cache/apt/archives/lock
    sudo rm /var/lib/dpkg/lock

    清理缓存,也就是/var/cache/apt目录下的deb包

    apt-get clean all

    安装virtualenv

    sudo pip3 install virtualenv

    提示:

    You are using pip version 8.1.1, however version 18.1 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.

    千万不要执行 pip install --upgrade pip

    否则会造成pip崩溃!

    创建虚拟目录

    sudo mkdir /virtualenvs

    创建虚拟环境

    进入虚拟目录,创建虚拟环境venv

    注意:下面的红色位置,需要根据自己的环境修改

    cd /virtualenvs
    sudo /usr/local/bin/virtualenv -p /usr/bin/python3 --no-site-packages venv

    语法说明:

    -p 指定python版本
    –no-site-packages表示不包括系统全局的Python安装包,这样会更令环境更干净

    指定豆瓣源

    #创建目录
    mkdir ~/.pip
    # 编辑配置文件
    vi ~/.pip/pip.conf

    内容如下:

    [global]
    index-url = http://pypi.douban.com/simple
    trusted-host = pypi.douban.com

    安装相关模块

    比如安装模块paramiko

    sudo /virtualenvs/venv/bin/pip3 install paramiko

    打包虚拟环境

    比如打包venv

    sudo tar zcvf venv.tar.gz venv

    三、离线测试

    环境说明

    系统是 ubuntu-16.04.5-server-amd64,默认已经安装好了python3,版本为3.5.2

    拷贝文件到根目录

    插入U盘或光盘,将venv.tar.gz复制到根目录下,解压

    sudo mkdir /virtualenvs
    sudo tar zxvf venv.tar.gz -C /virtualenvs/

    进入python测试

    /virtualenvs/venv/bin/python

    导入模块 paramiko,实例化SSHClient

    >>> import paramiko
    >>> paramiko.SSHClient()
    <paramiko.client.SSHClient object at 0x7f549e9aca90>

    如果没有报错,说明成功了

  • 相关阅读:
    github 上中国互联网公司的开源项目
    execve(".. ",[".. ",".. "],[/* ..*/])第二个 参数 数组硬传
    1506-122 (S) Expecting pointer to struct or union.
    徘徊~2013.7.31
    myeclipse2014 maven4eclipse配置
    01--maven安装与环境配置(windows)
    java宽度优先将二叉树存成数组
    java宽度搜索打印二叉树
    Jquery中bind绑定和on绑定的区别
    java设计模式singleton原理及实现(java1.4前不要使用双重锁保证线程安全)
  • 原文地址:https://www.cnblogs.com/xiao987334176/p/9875744.html
Copyright © 2020-2023  润新知