anaconda 是否保留 python 包的副本?

Does anaconda keep a copy of python packages?

我想在 Anaconda 环境中卸载 vtk 然后重新安装它。我已经卸载了软件包并删除了环境。为了检查发生了什么,我在 ~/anaconda2/envs/testenv/lib/python2.7/site-packages/vtk/__init__.py 中添加了评论 "If you are reading this that is bad"。这是该代码的副本:

from __future__ import absolute_import

# --------------------------------------
#If you are reading this that is bad
from .vtkCommonKit import *
from .vtkFiltersKit import *
from .vtkImagingKit import *
from .vtkRenderingKit import *
from .vtkIOKit import *
from .vtkOpenGLKit import *
from .vtkParallelKit import *
from .vtkWrappingKit import *
from .vtkInteractionKit import *
from .vtkViewsKit import *
from .vtkInfovisCore import *
from .vtkChartsCore import *
from .vtkDomainsChemistry import *
from .vtkFiltersFlowPaths import *
from .vtkFiltersHybrid import *
from .vtkImagingHybrid import *
from .vtkInfovisLayout import *
from .vtkGeovisCore import *
from .vtkRenderingGL2PSOpenGL2 import *
from .vtkIOExport import *
from .vtkIOExportOpenGL2 import *
from .vtkIOImport import *
from .vtkIOInfovis import *
from .vtkIOMINC import *
from .vtkIOTecplotTable import *
from .vtkViewsInfovis import *
# --------------------------------------

# useful macro for getting type names
__vtkTypeNameDict = {VTK_VOID:"void",
                     VTK_DOUBLE:"double",
                     VTK_FLOAT:"float",
                     VTK_LONG:"long",
                     VTK_UNSIGNED_LONG:"unsigned long",
                     VTK_INT:"int",
                     VTK_UNSIGNED_INT:"unsigned int",
                     VTK_SHORT:"short",
                     VTK_UNSIGNED_SHORT:"unsigned short",
                     VTK_CHAR:"char",
                     VTK_UNSIGNED_CHAR:"unsigned char",
                     VTK_SIGNED_CHAR:"signed char",
                     VTK_LONG_LONG:"long long",
                     VTK_UNSIGNED_LONG_LONG:"unsigned long long",
                     VTK_ID_TYPE:"vtkIdType",
                     VTK_BIT:"bit"}

def vtkImageScalarTypeNameMacro(type):
  return __vtkTypeNameDict[type]

# import convenience decorators
from .util.misc import calldata_type

# import the vtkVariant helpers
from .util.vtkVariant import *

我有 运行:

$conda uninstall vtk

$conda env remove --name testenv

但如果我 运行:

$conda create -n testenv2 python=2.7
$source activate testenv2
$conda install vtk

然后导航至 ~/anaconda2/envs/testenv2/lib/python2.7/site-packages/vtk/__init__.py 我发表的评论仍然存在。发生了什么事以及如何完全清除此文件的所有备份?

问题是它是为 vtk 版本制作的,该版本不能与我完成所有工作的 python 2.7 一起使用。我 运行ning ubuntu 16.04 在 Windows.

上的虚拟机中

我最终解决了这个问题,但我仍然不完全确定发生了什么。我如何修复它是终端中的以下 运行:

$conda env remove --name testenv2
$grep -r vtk ~/anaconda2

这返回了一个庞大的列表,但我注意到所有 python 和 java 包装器都在 ~/anadonda2/pkgs/vtk-6.3.0-py27_1 文件夹中。所以我 运行:

$cd ~/anadonda2/pkgs/
$rm -r vtk-6.3.0-py27_1
$conda create -n newenv python=2.7
$source activate newenv
$conda install vtk

现在我的所有代码 运行 再次出现在这个环境中,似乎已经解决了。

我将 vtk 6.3.0 的 tarball 留在 pkgs/ 文件夹中,猜测它必须从该文件夹中提取 vtk 的新副本以重建模块。我还推测当我升级到 vtk 的 8.1.0 版本时,__init__.py 最终被覆盖了,但我不确定为什么 pkgs/ 文件夹中没有 8.1.0 的包.这是因为它与 python 2.7 不兼容吗?希望这个临时解决方案至少在某些时候对某人有所帮助。