python项目离线环境配置指南
参考文献:
http://blog.csdn.net/candcplusplus/article/details/52156324
https://www.cnblogs.com/michael-xiang/p/5690746.html
一、说明
本文主要介绍两类软件的批量离线安装方式,一类是使用sudo apt-get install安装的软件,一类是使用pip install安装的python库。
环境:
Ubantu 16.03
两台主机,一台联网,一台断网
二、apt install 类软件
在Ubantu中使用apt install 安装软件时,所需要的文件和所有的依赖文件都会在 /var/cache/apt/archives/ 目录下缓存下来,所以只需要将其复制到断网主机上,然后改一下索引位置就能批量安装所有的软件。
具体步骤如下:
1. 在联网主机上下载所需软件
# 清空缓存目录 sudo rm -rf /var/cache/apt/archives/* # 下载所需软件 sudo apt-get install python-pip sudo apt-get install python-dev sudo apt-get install python-imaging
2. 拷贝文件
将 /var/cache/apt/archives/ 目录下的所有文件,除了lock文件,拷贝到U盘debs目录下,下面是我的样例。
3. 在离线主机上保存文件
sudo mkdir /var/debs # 创建空目录 sudo cp -r /U盘/路径/debs/* /var/debs/ # 将文件拷贝到该目录下
4. 生成索引
sudo touch /var/debs/Packages.gz sudo chmod -R 777 /var/debs/ # 设置修改权限 sudo dpkg-scanpackages debs /dev/null | gzip > /var/debs/Packages.gz # 创建索引
5. 在 /etc/apt/sources.list 中添加本地目录
sudo gedit /etc/apt/sources.list
将原来的内容全部注释,在末尾加行代码:
deb file:/var debs/
注意var和debs之间是空格
6. 更新索引
sudo apt-get update
7.安装软件
sudo apt-get install python-pip sudo apt-get install python-dev sudo apt-get install python-imaging
三、pip install类库
这里先用之前的方法安装好pip。
1. 在联网主机上找一目录,准备保存所需文件
我直接创建了一个 /home/python 目录,然后在里面创建一个packages目录。
2. 安装所需库
pip install scapy pip install scapy-http pip install py2neo pip install numpy pip install pandas pip install scikit-image pip install tensorflow
3. 打包已安装的库
pip freeze > /home/python/requirements.txt
pip install --download /home/python/packages -r /home/python/requirements.txt
注意,执行完第一行命令之后产生的 requirements.txt 文件需要删除一些配置,否则第二行无法正常执行。
我的初始 requirements.txt 文件如下:
absl-py==0.1.9 adium-theme-ubuntu==0.3.4 backports.functools-lru-cache==1.4 backports.weakref==1.0.post1 bleach==1.5.0 cycler==0.10.0 decorator==4.2.1 enum34==1.1.6 funcsigs==1.0.2 futures==3.2.0 html5lib==0.9999999 Markdown==2.6.11 matplotlib==2.1.2 mock==2.0.0 networkx==2.1 numpy==1.14.0 pandas==0.22.0 pbr==3.1.1 Pillow==5.0.0 protobuf==3.5.1 py2neo==3.1.2 pyparsing==2.2.0 python-dateutil==2.6.1 pytz==2017.3 PyWavelets==0.5.2 scapy==2.3.3 scapy-http==1.8 scikit-image==0.13.1 scipy==1.0.0 six==1.11.0 subprocess32==3.2.7 tensorflow==1.5.0 tensorflow-tensorboard==1.5.0 unity-lens-photos==1.0 Werkzeug==0.14.1
删除报错部分之后如下:
backports.functools-lru-cache==1.4 backports.weakref==1.0.post1 bleach==1.5.0 cycler==0.10.0 decorator==4.2.1 enum34==1.1.6 funcsigs==1.0.2 futures==3.2.0 html5lib==0.9999999 Markdown==2.6.11 matplotlib==2.1.2 mock==2.0.0 networkx==2.1 numpy==1.14.0 pandas==0.22.0 pbr==3.1.1 Pillow==5.0.0 protobuf==3.5.1 py2neo==3.1.2 pyparsing==2.2.0 python-dateutil==2.6.1 pytz==2017.3 PyWavelets==0.5.2 scapy==2.3.3 scapy-http==1.8 scikit-image==0.13.1 scipy==1.0.0 six==1.11.0 subprocess32==3.2.7 tensorflow==1.5.0 tensorflow-tensorboard==1.5.0 Werkzeug==0.14.1
4. 拷贝到离线主机
将/home/python这个拷贝到离线主机下,路径也是/home/python
5. 离线安装所有打包好的库
pip install --no-index --find-links=/home/python/packages -r /home/python/requirements.txt