anaconda虚拟环境从全局导入模块



在Windows PowerShell中工作时,我使用在Anaconda中创建了一个虚拟环境

>create conda -n test python=2.7.8

我用激活了它

>activate test
activating environment "test"...

测试环境不包含任何包。Python是里面唯一的东西。我检查了test\Lib\site软件包文件夹,它是空的。我启动了python

>python
>>>import pandas
>>>pandas.Series(range(1,5))
0  1
1  2
2  3
3  4
dtype: int64

我预期会出现错误消息,因为这个虚拟环境中没有安装panda。相反,它似乎是从安装大熊猫的全球蟒蛇环境中进口大熊猫。

我认为虚拟环境应该是孤立的。我是否误解了它们应该如何工作?如果他们应该被隔离,问题可能是什么?

堆栈溢出的新手,但我认为我可以提供帮助。首先,我需要运行的命令有点不同(我在Linux上)。事实上,这就是虚拟环境应该如何工作的。有几件事需要尝试:conda create --dry-run -n test python=2.7.8看看panda是否被安装到venv上(我不知道为什么会这样)。另一个想法是,当你activate test时,提示实际上会变为venv吗?也许可以看到:powershell 中的virtualenv

Windows有一点特殊性,可能会导致类似这样的混乱情况,那就是它总是隐式地将.(当前目录)放在搜索PATH的前面。这意味着,如果启动python时您当前在Anaconda目录中,它将在该目录中运行python.exe,而不管PATH的其余部分是什么样子(如果您不知道,activate命令的工作方式是修改PATH变量中目录的顺序)。

解决方案是在启动Python之前从Anaconda目录中cd。

相关内容

  • 没有找到相关文章

最新更新