【问题标题】:Why use the pip in a conda virtual environment makes the global effect?为什么在 conda 虚拟环境中使用 pip 会产生全局效果?
【发布时间】:2020-08-05 07:37:56
【问题描述】:

之前,我在我的机器上安装了 tensorflow 1.13。 有一些项目取决于不同版本的 tensorflow,我不想混淆不同版本的 tensowflow。

所以我只是尝试创建一个名为 tf2.0 的环境,并使用 pip 在该特定虚拟环境中安装 tensorflow 2.0.0b1。

但是,在我在那个“tf2.0”conda 环境中运行 'pip install tensorflow-gpu==2.0.0b1` 后,我发现它在全局生效,这意味着我必须使用 tensorflow-gpu 2.0.0b1即使那个虚拟环境“tf2.0”被停用。

我希望当虚拟环境被停用时我可以使用 tensorflow 1.13。

【问题讨论】:

  • 我在理解这个问题时遇到了一些麻烦——你能澄清你在问什么吗?
  • 您使用的是哪个操作系统?您是否偶然为pip 创建了别名?
  • @neelg 不会明确使用非 Conda pip。 Conda 不使用 pip2pip3 别名。
  • @neelg 没有;尝试检查您的which pip3。应该是conda activate env 然后是pip install some_pkg(尽管conda install some_pkg 应该始终是首选)。但正如我在回答中指出的那样,这是对最佳实践的建议。 Mixing Conda and Pip is rather precarious,这样做ad hoc(即,即装即用)容易出错。
  • 如果你使用的是 Conda,为什么要通过 pip 安装 TensorFlow?! 我希望当虚拟环境被停用时我可以使用 tensorflow 1.13。 为什么不只使用多个环境?

标签: tensorflow pip anaconda conda tensorflow2.0


【解决方案1】:

根据您描述的问题,我可以猜测您尝试安装 tensorflow2.0 的环境未激活

制作完成后请务必激活环境。

所以在创建环境之后执行此操作-

conda activate tf2.0

确保你看到这个

(tf2.0) C:\Users\XYZ>

然后你安装你的 tensorflow。

【讨论】:

    【解决方案2】:

    这主要是您使用了错误的点子。为了确保您使用正确的点子,通常这样做是一个好习惯

    python -m pip install —user PACKAGE_NAME
    

    鉴于您有 conda,pip 应该是最后的手段。
    Conda 频道 conda-forge 很可能拥有您正在寻找的最新软件包版本。

    conda install -c conda-forge PACKAGE_NAME
    

    如果您必须使用 pip,请确保您在一个环境中,并且该环境有自己的 pip。

    conda create -n test python=3.7 
    conda activate test
    python -m pip install PACKAGE_NAME
    

    【讨论】:

      【解决方案3】:

      如果没有更多详细信息(运行确切的命令,在激活前后和激活后显示 PATH 等),就很难对所描述的情况进行故障排除。不过,您可以尝试切换到关注the most recent recommendations for mixing Conda and Pip。即,避免安装 ad hoc 的东西,这很容易使用错误的 pip 和破坏包,而是定义一个 YAML 文件并始终一次性创建整个 env。

      作为一个最小的例子:

      my_env.yaml

      name: my_env
      channels:
       - defaults
      dependencies:
       - python
       - pip
       - pip:
         - tensorflow-gpu==2.0.0b1
      

      可以使用conda env create -f my_env.yaml 创建。通常,最好在依赖项的“非 pip”部分中包含所有可能的内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-09-02
        • 2019-04-13
        • 2021-10-24
        • 1970-01-01
        • 2018-04-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多