为什么在conda虚拟环境中使用pip会产生全局影响?

时间:2020-04-22 10:11:36

标签: tensorflow pip anaconda conda tensorflow2.0

以前,我在机器上安装了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。

3 个答案:

答案 0 :(得分:0)

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

作为一个最小的例子:

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”部分。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

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

请确保在创建环境后激活它。

因此在创建环境后执行此操作

conda activate tf2.0

确保您看到了

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

然后安装张量流。