在工作中会使用python制作一些工具,但是python不同版本的兼容性较差,然而有时不得更换电脑,使原python脚本运行时经常会发生一些问题,因此想制作一个可以迁移的python虚拟环境。
但是,直接将虚拟环境迁移到另一台电脑,甚至在同一台电脑上移动虚拟环境位置,运行python都会发生问题。常规的解决方案[1]是生成requirements.txt后在另一台电脑上安装,如下。

  • activate需要打包的虚拟环境,在对应目录下创建一个文件夹whl,并新建requirements.txt文件,进入whl文件夹
pip freeze --all > requirements.txt
  • 这样需要安装的依赖库就总结在requirements里面,将符合条件的库进行打包
pip download -r requirements.txt
  • 需要安装的文件就全部在whl文件夹里面了。在目标机器上新建一个虚拟环境,考虑另外一台机器是否接网的问题,有两种策略。
  • 有网的话,直接拷贝requirements.txt进行在线安装
pip install -r requirements.txt
  • 没网时将whl文件夹全部拷到虚拟环境下进行安装
pip install --no-index --find-links=. -r requirements.txt

此种方案并不能实现我想要的迁移后直接使用的功能,因此实践出来了可以在本机任意移动虚拟环境,并可以迁移到和原电脑相同系统的电脑后直接activate使用的方案。
注意:

  • 本方案目前只针对Ubuntu系统,尚未对Windows系统进行实践;
  • 电脑间迁移,电脑的系统必须相同,不同版本的Ubuntu系统间迁移尚在实践中。

1. venv工具安装

sudo apt-get install python3-venv

2. 创建python虚拟环境

mkdir venv-python
python3 -m venv venv-python

3. 自动获取虚拟环境迁移位置

venv-python/bin/activate脚本中,变量VIRTUAL_ENV为初始安装的python虚拟环境位置,即VIRTUAL_ENV="venv-python"。在迁移python虚拟环境后需要自动获取文件位置,修改脚本。

workdir=$( dirname $( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) )
VIRTUAL_ENV="${workdir}"
export VIRTUAL_ENV

4. 修改脚本默认解释器

venv-python/bin/中的脚本文件中,设置的使用的python3解释器是虚拟环境安装时的python3文件路径,需要修改路径为迁移后的位置。

filesdir=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
python_interpreter="#!${filesdir}/python3"for file in `ls ${filesdir}`
doif [ ${file:0:6} = "python" ];then:elif [ ${file:0:8} = "activate" ];then:else:read_file="${filesdir}/${file}"sed -i "1c ${python_interpreter}" ${read_file}fi
done

5. 修改python连接

venv-python/bin/python3软连接到/usr/bin/python3,而/usr/bin/python3软连接到/usr/bin/python3.6。为了迁移后使用虚拟环境中的python,需要拷贝python库文件和修改软连接。

sudo cp /usr/bin/python3.6 venv-python/bin/
ln -snf python3.6 python3

通过上述操作就可以将python虚拟环境迁移到本机其他位置或者其他相同系统的机器上直接使用了。

参考文章:[1] https://blog.csdn.net/sinat_32330093/article/details/95447823

Python 虚拟环境迁移相关推荐

  1. python虚拟环境迁移及代码实现

    python虚拟环境迁移 文章目录 python虚拟环境迁移 激活虚拟环境 创建 requirements 下载依赖包 换机器 创建新的虚拟环境 激活新的虚拟环境 安装包 有网的情况下,也可以直接安装 ...

  2. Python虚拟环境迁移

    文章目录 前言 一.解决办法 1. 虚拟环境当中没有python: 2. pip无法运行 二.正确迁移python虚拟环境的步骤 虚拟环境打包 前言 最近脑子瓦特掉了想搞搞黑苹果(主要控制不住自己开游 ...

  3. Python 虚拟环境迁移路径后pip报错解决记录

    为了保持不同项目之间包管理的独立,一般每个项目中都会独用一个虚拟环境venv,venv放在项目根目录下,在项目迁移的时候虚拟环境一般是不敢乱动的,容易报很多莫名其妙的错误,比如:因此,每次移动项目都是 ...

  4. python环境迁移:从联网笔记本到离线服务器

    说明1:联网笔记本和离线服务器最好安装同一版本的anaconda. 说明2:本文以离线安装包的形式重建虚拟环境,而不是直接把虚拟环境拷贝过去使用,是因为有的安装包直接拷贝过去无法正确使用. 说明3:先 ...

  5. 迁移python虚拟环境搭建_python虚拟环境virtualenv创建与迁移

    1.安装virtualenv pip install virtualenv #(python2) pip3 install virtualenv #(python3) 2.创建venv virtual ...

  6. 迁移python虚拟环境后pip无法使用

    在迁移别人的python虚拟环境后,pip install无法正常的使用 具体显示如下图: bash: /home/cqy/anaconda3/envs/nanodet/bin/pip: /home/ ...

  7. python虚拟环境的目录是啥_Python 虚拟环境

    前言 有的时候因为各种原因,在操作系统下,我们会安装很多版本的Python解释器.同样,我们也有可能因为各种原因,需要不同版本的模块,比如Django1.8,Django1.11.再加上pip工具管理 ...

  8. Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境

    文章目录 1. 概述 2. virtualenv + virtualenvwrapper 1. virtualenv 安装virtualenv 基本使用 2. virtualenvwrapper 安装 ...

  9. python虚拟环境的安装_Python虚拟环境搭建学习笔记

    1. Python虚拟环境 满足不同版本的需要所以来创建虚拟环境 2. 下载安装 * 清华的镜像 [https://mirror.tuna.tsinghua.edu.cn/help/anaconda/ ...

最新文章

  1. 智能车竞赛云上比赛第二天
  2. SQL2012数据库加密方法
  3. php读程序,PHP 读取大文件程序代码
  4. Linux下使用crontab命令以及Python脚本实现自动签到
  5. 【GPS】GPS的C_GNSS_RF_ELNA_GPIO_NUM_DEFAULT配置,Linux系统中GPIO的设置
  6. 计算机学业水平测试字处理多少分,【计算机应用论文】计算机应用基础学业水平的测试问题(共3624字)...
  7. oracle列传行函数,oracle行转列和列转行(pivot 和 unpivot 函数,wm_concat函数 )
  8. java对象命名用变量_在Java语言中,所有的变量、常量、对象和类都是用【 】来命名的。...
  9. 【本人秃顶程序员】SpringMVC工作原理详解
  10. uuid会重复吗_记一次订单号重复的事故,快看看你的 UUID 在并发下还正确吗?...
  11. 操作系统:进程同步与互斥之生产者-消费者问题(含报告和源码)
  12. Mac UE各版本破解方法
  13. 【信息学奥赛一本通】题解目录答案
  14. 8年Android开发教你如何写简历,详细的Android学习指南
  15. 创新彰显实力,方正璞华又获一项国家发明专利
  16. 【POI2012】SZA-Cloakroom
  17. iOS 数据库升级策略
  18. 众人皆阳我独阴,分享与小阳人共同生活一周体验!
  19. 回味陈年老酒----DOS
  20. java 加密方式_Get史上最优雅的加密方式!没有之一!

热门文章

  1. 大数据服务平台---接口自动化
  2. Django2.0+小程序技术打造微信小程序助手百度云
  3. numpy.outer()函数
  4. 记录:mysql的binlog日志开启与数据恢复
  5. Android - Android Studio 加速Gradle Bulid 速度
  6. 百度token怎么获取_【专栏精选】实战:百度语音识别
  7. 苹果这波是要偷家啊。。
  8. 【githubshare】开源的文件文档在线预览项目,支持主流办公文档的在线预览,如 doc、docx、Excel、pdf、txt、zip、rar、 图片等
  9. 基于DSP 回传音通话降噪链路设计
  10. python基础运用_python基础知识和运用