淘先锋技术网

首页 1 2 3 4 5 6 7

许多时候,服务器处于内网环境中,下载依赖没办法直接pip install xxx,如果一个个下载再解压再拷贝到内网服务器安装也太麻烦,下面讲两种方法

一.pip批量下载安装

参考文章:https://www.cnblogs.com/flowertester/p/11355484.html

1.制作requirements.txt文件

将当前python环境依赖记录到依赖文件(如果是虚环境请先进入虚环境)

a.进入虚环境

我在:/nurxat/penv下有三个虚环境,现在以python2的虚环境penv2做示范在这里插入图片描述
激活虚环境:

source penv2/bin/activate

在这里插入图片描述
在这里插入图片描述

b.记录依赖
  pip freeze >requirements.txt

在这里插入图片描述

2.根据依赖文件下载依赖包(在有网的电脑)

a.创建目录,用于保存依赖,进入该目录,把requirements.txt放到该目录:
  mkdir packages
  cd packages
  #为了方便我把依赖文件移动到该目录下
  mv ../requirements.txt ./
b.执行下载命令
pip download -r requirements.tx

已经下载好了
在这里插入图片描述

3.安装

将下载依赖的packages(包含依赖文件requirements.txt)拷贝到要安装的电脑

a.进入要安装的虚环境:
source penv4/bin/activate 

在这里插入图片描述
在这里插入图片描述

b.执行安装命令:
pip install --no-index --find-links=/nurxat/penv/packages -r /nurxat/penv/packages/requirements.txt

–find-links为依赖位置
-r后为依赖文件位置
在这里插入图片描述

c.可以看到安装完成

在这里插入图片描述

二.制作egg文件安装

参考文章:https://www.cnblogs.com/kungfupanda/p/3343113.html
将pip安装好的依赖制作成.egg文件,使用setuptools自带的easy_install.py安装

1.制作egg文件(该示例也以penv2和penv4演示,penv4依赖已全部卸载)

a.切换到penv2的site-packages下
cd /nurxat/penv/penv2/lib/python2.7/site-packages

在这里插入图片描述

b.在需要制作egg文件夹的同级目录创建setup.py文件(以flask为例)
touch setup.py

写入如下内容:
name必须为要制作的文件名字
version应尽量和依赖本来版本保持一致,避免混乱

#!/usr/bin/env python
#-*- coding:utf-8 -*-

from setuptools import setup, find_packages

setup(
        name = "flask",
        version="0.1.0",
        packages = find_packages(),
        zip_safe = False,

        description = "为flask制作egg文件",
        long_description = "为flask制作egg文件",
        author = "lzk",
        author_email = "[email protected]",

        license = "GPL",
        keywords = ("test", "egg"),
        platforms = "Independant",
        url = "",
        )
c.执行命令:
python setup.py bdist_egg

执行成功,dist目录就是egg文件生成位置
在这里插入图片描述

d.将flask-0.1-py2.7.egg拷贝到其他需要安装的环境的site-packages下

在这里插入图片描述

 cp flask-0.1-py2.7.egg /nurxat/penv/penv4/lib/python2.7/site-packages/
 source /nurxat/penv/penv4/bin/activate
 cd /nurxat/penv/penv4/lib/python2.7/site-packages

在这里插入图片描述

e.执行安装
easy_install flask-0.1-py2.7.egg 

在这里插入图片描述

可见安装成功

ps:截图可看到 Version为 0.1
1.其实在配置setup.py文件时version应该尽量和flask本来的版本保持一致,避免混乱
2.name为要打包的文件夹或文件的名字,不可随便起
在这里插入图片描述

f.卸载

egg安装的依赖和pip安装的依赖在site-packages目录下的文件结构不一样,但是egg安装的依赖也可以使用pip uninstall来卸载,因为安装egg的easy_install.py是基于python的distutils来实现的,所以它遵守distutils的规范

pip uninstall flask

在这里插入图片描述
在这里插入图片描述
关于egg更多细节请
参考:https://www.cnblogs.com/kungfupanda/p/3343113.html
关于easy_install请参考:https://www.jianshu.com/p/c61cdd2b9e35
easy_install是setuptools自带工具,而安装虚环境会自动安装setuptools