【问题标题】:Why has Anaconda added my default Python paths to the specific environment's path?为什么 Anaconda 将我的默认 Python 路径添加到特定环境的路径中?
【发布时间】:2015-05-26 10:57:34
【问题描述】:

我创建了一个 anaconda 环境。当我激活环境时,我可以看到环境使用的 Python 版本与我的默认 Python 版本不同。这是对的。但是,当我在激活的环境中检查 python 路径时。

import sys
from pprint import pprint
pprint(sys.path)

我可以看到前 4 项指向默认的 Python 安装。

['', 'C:\\Python27\\Lib\\site-packages\\distribute-0.6.35-py2.7.egg', 'C:\\Python27\\Lib\\site-packages\\ipython-1.0.0-py2.7.egg', 'C:\\Python27\\Lib\\site-packages', 'C:\\Python27\\Lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\python27.zip', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\DLLs', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\plat-win', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\lib-tk', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages\\PIL', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages\\Sphinx-1.2.3-py2.7.eg g', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages\\win32', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages\\win32\\lib', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages\\Pythonwin', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages\\runipy-0.1.1-py2.7.eg g', 'C:\\Users\\sennn\\AppData\\Local\\Continuum\\Anaconda32\\envs\\apiapi\\lib\\site-packages\\setuptools-5.8-py2.7. egg']

这会导致导入某些库的错误版本。

为什么将这些默认目录添加到路径中?这是创建新 Anaconda 环境时的默认行为吗?有什么办法可以覆盖吗?

【问题讨论】:

  • 安装 PyCharm 后,我在 Windows 机器上遇到了类似的问题。我从 PyCharm 更改了解释器以使用我自己安装的解释器,并且我能够访问旧库。
  • 您可以在 virtualenv 中安装 Anaconda 以获得一个封闭的环境
  • Anaconda 在某些方面提供了一个虚拟环境,因此将它包装在一个 virualenv 中对我来说没有多大意义。

标签: python python-2.7 anaconda


【解决方案1】:

检查您是否设置了环境变量PYTHONPATHPYTHONHOMEconda info -a 还将向您显示可能导致此类事情发生的所有相关环境变量。

【讨论】:

  • PYTHONHOME 未设置,PYTHONPATH 设置为 C:\Python27\Lib\site-packages。此信息是指系统变量还是一般 anaconda 安装明智变量?
  • PYTHONPATH 被设置是问题的原因。它可能是一个系统范围的环境变量。我建议取消设置它,因为它会导致 Anaconda Python 和任何 conda 环境获取这些 Python 模块。谷歌如何在 Windows 中取消设置环境变量(过程会根据您使用的 Windows 版本而有所不同)。
  • 我取消了 PYTHONPATH 变量的设置,现在它工作正常(我只能看到环境中的 Anaconda 特定路径)。我希望删除这个变量不会影响我的标准 Python 环境。如果我可以简单地更改 Anaconda 的配置以省略此系统变量而不是依赖于是否设置了系统变量,那就太好了。
  • 你的标准 Python 应该仍然指向它自己。每个 Python 安装,无论是标准 Python 安装还是 conda 环境,都会在其 sys.path 中自动包含其自己的站点包。仅当您想向 sys.path 添加与标准位置不同的位置时,才需要 PYTHONPATH。 Anaconda 不会更改为忽略该变量,因为它有合法的用例。
  • @asmeurer:很好的答案。你介意看看这个吗? stackoverflow.com/questions/36733179/…
猜你喜欢
  • 2019-03-10
  • 2019-12-15
  • 1970-01-01
  • 2020-01-03
  • 2019-06-30
  • 1970-01-01
  • 2015-12-19
  • 1970-01-01
  • 2017-12-24
相关资源
最近更新 更多