Python 离线环境

发布时间:2019-02-02 17:30:25编辑:admin阅读(4108)

    一、应用场景

    比如:对于数据安全要求比较严格的机房,服务器是不允许上网的。那么我现在开发了一套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 /virtualenvssudo /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/simpletrusted-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 /virtualenvssudo tar zxvf venv.tar.gz -C /virtualenvs/

     

    进入python测试

    /virtualenvs/venv/bin/python

    导入模块 paramiko,实例化SSHClient

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

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


关键字