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==16.6.0 |
提示:
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> |
如果没有报错,说明成功了