TensorFlow virtualenv 中有不同的可用包?

数据挖掘 Python 张量流 linux
2022-02-16 16:26:39

我按照说明应该创建和激活虚拟环境的文档在 Linux (Anaconda) 上安装了 TensorFlow tensorflow到目前为止,一切都很好(尽管当我想将 TF 合并到我现有的环境中时,为什么需要这个虚拟环境并不完全清楚)。

但是当我激活 tensorflow 环境时,我观察到几个包在新环境中不可用,而同时在环境之外可用:

$source activate tensorflow
$python

>>>import h5py

... No module named h5py

$source deactivate tensorflow
$python

>>>import h5py
>>>

在这种情况下没有问题。

我猜我也应该在 tensorflow 环境中安装缺少的包,但是当我尝试安装时,我得到通知,有问题的包已经安装并且没有任何反应:

$source activate tensorflow
$pip install h5py

Requirement already statisfied ....

其他几个包也会出现同样的不一致。这里有什么问题?

2个回答

我无法就您的虚拟环境为何找不到软件包提供任何建议(我不熟悉 anaconda)。唯一想到的是PATH问题。

也许尝试使用以下命令安装软件包:

conda install -n yourenvname [package]

或者,在您的情况下:

conda install -n tensorflow h5py

要仅将其他软件包安装到您的虚拟环境,请输入以下命令,其中 yourenvname 是您的环境名称,[package] 是您要安装的软件包的名称。未能指定“-n yourenvname”会将包安装到根 Python 安装。

来源:https ://uoa-eresearch.github.io/eresearch-cookbook/recipe/2014/11/20/conda/

我相信可能存在 python 的冲突版本,当您在虚拟环境中时,请尝试查看您使用的是哪个 python:

which python

如果您使用的 python 版本不是 conda 环境中的版本,请尝试设置它:

export PATH=path/to/python

您可以尝试另外两件事,首先尝试 conda pip install 看看这是否有效:

conda install pip

您可能有两个相互冲突的 pip 版本,要查看是否是这种情况,请尝试此操作并使用导出将其设置为正确的版本:

which -a pip