在虚拟环境中导入使用anaconda安装的包

Importing a package installed with anaconda in virtual environment

我想使用 python 包 holopy。显然你必须使用 conda 来安装它,所以我首先安装了 Anaconda 4.2.0(因为我使用的是 Python 3.5)。我打开了我通常使用的虚拟环境并按照他们在官方网站上的推荐安装了holopy:

conda install -c conda-forge holopy

之后,当我在虚拟环境中键入 conda list 时,holopy 出现了。但是当我输入 python3 然后输入 import holopy 时,它说找不到包。但是,当我离开虚拟环境时它确实有效。我在虚拟环境中需要它,我该怎么做?

conda 是一个打包工具和安装程序,旨在做比 pip 能做的更多的事情;处理 Python 包之外的库依赖项以及 Python 包本身。 Conda 还创建了一个虚拟环境,就像 virtualenv 一样。要使用 conda 创建 virtualenv,请使用以下命令:-

conda create -n yourenvname python=x.x anaconda

使用以下命令激活conda中的virtualenv

source activate yourenvname

然后,您可以使用 conda 在 vi​​rtualenv 中安装软件包:-

conda install -n yourenvname [package]

停用使用:-

source deactivate

要删除不再需要的 virtualenv,请使用 :-

conda remove -n yourenvname -all

我不确定 anaconda 和虚拟环境,即 venv 协同工作的效果如何。如果您无论如何都在使用 anaconda,那么我强烈建议您使用 anaconda 环境。请仔细阅读这个关于 anaconda environments 的简短教程 - 您不会后悔的。

为什么它对你不起作用?

conda 命令仅在基本 anaconda 环境中可用。因此,当您 运行 命令 - conda insall -c conda-forge holopy 时,它会在基本 anaconda 环境中安装 holopy 并且在您的 venv.[=30= 中将无法使用它]

查看 holopy 的文档后,他们说 virtual environment 的意思很可能是 anaconda virtual environment。因此解决方案是首先创建一个名为 holopy-envanaconda virtual environment 然后 运行 命令 conda install -n holopy-env -c conda-forge holopy.

使用 Anaconda 做事的更好方法

我还将为您提供一个快速清晰的示例,说明如何使用 anaconda 创建环境。如果您使用的是 Anaconda,那么使用它的 environment management 工具是明智的。使用以下内容创建 environment.yml 文件:

environment.yml 使用 conda-forge/holopy & python 3.6

name: holopy-env      # any name for the environment
channels:
- conda-forge
dependencies:         # everything under this, installed by conda
- python=3.6
- holopy
- pip:                # everything under this, installed by pip
  - future

如何安装环境?

conda create --force -f environment.yml

如何激活环境?

source activate opencv-env

激活环境后

  • 你应该可以import holopy
  • 使用 pip install <package>
  • 安装 pip 包
  • 使用 conda install -n holopy-env -c CHANNEL <package>
  • 安装 conda 包

我知道这有点晚了,但您不需要使用 conda 来安装 HoloPy。这只是技术含量最低的选择。否则,您需要能够自己编译 HoloPy 的 fortran 组件,这在基于 Unix 的系统上相当简单,但在 Windows 上很复杂。可以在位于 https://holopy.readthedocs.io/en/latest/users/dev_tutorial.html.

的 HoloPy 文档中找到说明

我们还在努力将 HoloPy 的奇点容器分布放在一起。如果您对此感兴趣,请告诉我,我会将其作为优先事项。