Python虚拟环境迁移实践

 更新时间:2026年06月01日 15:05:08   作者:小作坊钳工  
本文详细介绍了如何在不同位置或相同系统的电脑间迁移Python虚拟环境,包括生成requirements.txt修改激 活脚本和解释器路径等确保迁移后的环境能直接激 活使用

Python虚拟环境迁移

在工作中会使用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}`
do
    if [ ${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虚拟环境迁移到本机其他位置或者其他相同系统的机器上直接使用了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python类的用法实例浅析

    Python类的用法实例浅析

    这篇文章主要介绍了Python类的用法,以实例形式简单分析了Python中类的定义、构造函数及使用技巧,需要的朋友可以参考下
    2015-05-05
  • 关于Python 位运算防坑指南

    关于Python 位运算防坑指南

    这篇文章主要介绍了关于Python 位运算防坑指南,小编将剧烈向大家说明并且列举python及C#两种语言,需要的朋友可以参考下面文章的具体内容
    2021-09-09
  • tensorflow 1.0用CNN进行图像分类

    tensorflow 1.0用CNN进行图像分类

    这篇文章主要为大家详细介绍了tensorflow 1.0用CNN进行图像分类,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Pandas中describe()函数的具体使用

    Pandas中describe()函数的具体使用

    本文主要介绍了Pandas中describe()函数的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Pandas统计每行数据中的空值的方法示例

    Pandas统计每行数据中的空值的方法示例

    处理缺失数据(NaN 值)是一个非常常见的问题,本文主要介绍了Pandas统计每行数据中的空值的方法示例,具有一定的参考价值,感兴趣的可以了解一下
    2025-04-04
  • 基于Python编写一个有趣的年会抽奖系统

    基于Python编写一个有趣的年会抽奖系统

    这篇文章主要为大家详细介绍了如何使用Python编写一个简易的抽奖系统,顺便帮助大家巩固一下对Python语法和框架的理解,感兴趣的小伙伴可以了解下
    2023-12-12
  • pycharm不能运行.py文件的解决方法

    pycharm不能运行.py文件的解决方法

    今天小编就为大家分享一篇pycharm不能运行.py文件的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 解决python3 urllib 链接中有中文的问题

    解决python3 urllib 链接中有中文的问题

    今天小编就为大家分享一篇解决python3 urllib 链接中有中文的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • 简单了解Python下用于监视文件系统的pyinotify包

    简单了解Python下用于监视文件系统的pyinotify包

    这篇文章主要介绍了Python下用于监视文件系统的pyinotify包,pyinotify基于inotify事件驱动机制,需要的朋友可以参考下
    2015-11-11
  • Python命令行运行文件的实例方法

    Python命令行运行文件的实例方法

    在本篇文章里小编给大家整理的是一篇关于Python命令行运行文件的实例方法,有兴趣的朋友们可以学习参考下。
    2021-03-03

最新评论