【问题标题】:Copying installed packages to new Linux distribution [closed]将已安装的软件包复制到新的 Linux 发行版 [关闭]
【发布时间】:2020-02-08 13:15:06
【问题描述】:

我在 Linux 桌面上使用 Python 已经有一段时间了,我已经通过 pip 安装了许多包(一些作为超级用户,另一些带有 --user 选项)。现在我正在转向安装在同一台计算机的另一个分区上的更新的 Linux 发行版。

是否可以将某些文件夹(pip/python 已安装所有软件包)从旧的 Linux 分区复制到新的 Linux 分区?通过这种方式,我不仅可以节省时间,还可以节省互联网带宽(对此的认识正在提高)。感谢您的帮助。

【问题讨论】:

  • 如果您创建了虚拟环境,我认为无论如何都不可能,您可以为安装在虚拟环境中的所有依赖项创建一个需求文件,然后通过一些外部方式直接粘贴您的文件夹进一步开始开发再次直接在新分区上。

标签: python linux package


【解决方案1】:

技术上是的,但根据您所做的更改以及您的来源和目的地,从您的 pip 列表中重新安装它们可能需要更少的时间(可能)。

pip list > piplist #save list of installed packages into 'piplist' file
pip freeze > pipfreeze #save list with versions, which probably won't matter

pip install -r piplist #reinstall packages list (eg: on other system)
pip install -r pipfreeze #reinstall with versioned list

如果您要转移到同一发行版的更新版本,则应该直接升级。

如果您的发行版在每次升级时都出现故障,您应该寻找另一个发行版。

【讨论】:

  • 我可以转移这个文件夹:.local/lib/python3.5/site-packages 吗?它是 2.2Gb 文件夹。
  • @mso 这不值得。改为保存软件包列表(编辑答案以包含显式命令),并在任何后续安装中重新安装该列表中的软件包。如果这是您遇到的情况,将整个安装复制到新硬件是值得的,但是复制这一小部分并不值得,并且必须担心与新系统的潜在不兼容性。一般而言,无需备份或保存可轻松从网上获取且您未进行任何修改的软件 - 一个新副本也一样好。
  • 好的。在最后一条语句中应该是 pip install -r pipfreeze 而不是 pip install -r freeze
  • 确实如此。固定。
猜你喜欢
  • 1970-01-01
  • 2021-05-13
  • 2015-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
相关资源
最近更新 更多