【问题标题】:If I install a package in only one virtual environment, do I need to reinstall it in other virtual environments?如果我只在一个虚拟环境中安装一个包,我是否需要在其他虚拟环境中重新安装它?
【发布时间】:2019-06-07 23:03:29
【问题描述】:

例如,如果我在一个虚拟环境中安装了 TensorFlow,当我在不同的虚拟环境中创建新项目时,是否需要重新安装它?这看起来很麻烦,而且我通常只需要一个版本的包。

另外,我想使用 Anaconda 安装 TensorFlow,但唯一的方法是使用虚拟环境:https://docs.anaconda.com/anaconda/user-guide/tasks/tensorflow/ 关于如何在系统范围内安装它的任何想法?

【问题讨论】:

  • 这就是虚拟环境的全部意义
  • @Sayse 如果每个项目都有十几个包依赖项,这似乎需要很长时间。为了获得最佳实践,是否应该在系统范围内安装特定的软件包以节省时间,或者它们都应该是特定于环境的?
  • @Goldname 始终特定于环境。系统范围的软件包有一定的版本。如果您的项目需要更新的版本,那么祝您配置管理好运。您应该在系统范围内使用的软件包:pip、pipenv
  • 当您的旧项目需要更新以支持较新版本的软件包时,将需要更长的时间,因为您的较新项目需要它们

标签: python tensorflow virtualenv


【解决方案1】:

是的,您需要每个虚拟环境的包。使用pipenv 之类的工具相当容易。

您希望每个虚拟环境都有包的原因是每个项目的版本管理。如果您在本地有 10 个项目并且只使用系统范围的包。他们都需要使用相同的版本。你可以侥幸逃脱,但这是你想要避免的。

【讨论】:

  • 你知道我制作的 Anaconda 环境是否继承了基础环境中的所有包吗?
【解决方案2】:

如果您使用 conda 环境,您可以克隆和共享它们。

conda create --name mynewcloneenv --clone myoldoriginalenv

【讨论】:

    【解决方案3】:

    例如,如果我在一个虚拟环境中安装了 TensorFlow,当我在不同的虚拟环境中创建新项目时,是否需要重新安装它?这看起来很麻烦,而且我通常只需要一个版本的包。

    是的

    另外,我想使用 Anaconda 安装 TensorFlow,但唯一的方法是使用虚拟环境:https://docs.anaconda.com/anaconda/user-guide/tasks/tensorflow/ 关于如何在系统范围内安装它的任何想法?

    尝试在每个项目中使用 venv。

    根据您的 cmets 和您的问题,您可以准备一个 pip 命令来将所有东西安装在一个地方。其以空格分隔的列表。

    pip install package1 package2 package3 package4
    

    【讨论】:

    • 基础环境呢?是否所有环境都从它继承包?
    • 如果你还想使用基础环境,你可以在创建你的venv时使用--system-site-packages
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-05
    • 1970-01-01
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 2014-02-26
    • 2021-06-03
    相关资源
    最近更新 更多