欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python依赖包的迁移

程序员文章站 2022-06-08 11:06:45
...

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

一.pip批量下载安装

参考文章:https://www.cnblogs.com/flowertester/p/11355484.html
1.制作requirements.txt文件
将当前python环境依赖记录到依赖文件(如果是虚环境请先进入虚环境)
a.我在:/nurxat/penv下有三个虚环境,现在以python2的虚环境penv2做示范python依赖包的迁移
**虚环境:

source penv2/bin/activate

python依赖包的迁移
python依赖包的迁移

b.记录依赖

  pip freeze >requirements.txt

python依赖包的迁移
2.根据依赖文件下载依赖包(在有网的电脑)
a.创建保存依赖的目录并进入,把requirements.txt放到该目录:

  mkdir packages
  cd packages
  #为了方便我把依赖文件移动到该目录下
  mv ../requirements.txt ./

b.执行下载命令

pip download -r requirements.tx

已经下载好了
python依赖包的迁移
3.安装
将下载依赖的packages(包含依赖文件requirements.txt)拷贝到要安装的电脑
a.进入要安装的虚环境:

source penv4/bin/activate 

python依赖包的迁移
python依赖包的迁移
b.执行安装命令:

pip install --no-index --find-links=/nurxat/penv/packages -r /nurxat/penv/packages/requirements.txt

–find-links为依赖位置
-r后为依赖文件位置
python依赖包的迁移
c.可以看到安装完成
python依赖包的迁移
二.制作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

python依赖包的迁移
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 = "aaa@qq.com",

        license = "GPL",
        keywords = ("test", "egg"),
        platforms = "Independant",
        url = "",
        )

c.执行命令:

python setup.py bdist_egg

执行成功,dist目录就是egg文件生成位置
python依赖包的迁移
d.将flask-0.1-py2.7.egg拷贝到其他需要安装的环境的site-packages下
python依赖包的迁移

 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

python依赖包的迁移
e.执行安装

easy_install flask-0.1-py2.7.egg 

python依赖包的迁移
可见安装成功
ps:截图可看到 Version为 0.1
1.其实在配置setup.py文件时version应该尽量和flask本来的版本保持一致,避免混乱
2.name为要打包的文件夹或文件的名字,不可随便起
python依赖包的迁移
f.卸载
egg安装的依赖和pip安装的依赖在site-packages目录下的文件结构不一样,但是egg安装的依赖也可以使用pip uninstall来卸载,因为安装egg的easy_install.py是基于python的distutils来实现的,所以它遵守distutils的规范

pip uninstall flask

python依赖包的迁移
python依赖包的迁移
关于egg更多细节请参考:https://www.cnblogs.com/kungfupanda/p/3343113.html
关于easy_install请参考:https://www.jianshu.com/p/c61cdd2b9e35
easy_install是setuptools自带工具,而安装虚环境会自动安装setuptools

相关标签: 笔记 python pip