anaconda virtual env 从全局导入模块
anaconda virtual env imports modules from global
使用 Windows PowerShell,我使用
在 Anaconda 中创建了一个虚拟环境
>create conda -n test python=2.7.8
我使用
激活了它
>activate test
activating environment "test"...
测试环境不包含包。 Python 是那里唯一的东西。我检查了 test\Lib\site-packages 文件夹,它是空的。
我开始 python
>python
>>>import pandas
>>>pandas.Series(range(1,5))
0 1
1 2
2 3
3 4
dtype: int64
我预计会出现错误消息,因为此虚拟环境中没有安装 pandas。相反,它似乎是从安装了 pandas 的全局 Anaconda 环境中导入 pandas。
我认为虚拟环境应该是隔离的。我是否误解了它们应该如何工作?
如果他们应该被隔离,问题可能是什么?
堆栈溢出的新手,但我想我可以提供帮助。首先,我需要 运行 的命令有点不同(我在 Linux)。也就是说,事实上,虚拟环境应该如何工作。有几件事要尝试: conda create --dry-run -n test python=2.7.8
查看是否 pandas 被安装到 venv(我不知道为什么会这样)。另一个想法,当您 activate test
时,提示实际上会更改为 venv 吗?也许看到:virtualenv-in-powershell
Windows 有一点特殊性会导致像这样令人困惑的情况,那就是它总是隐式地将 .
(当前目录)放在搜索 PATH 的前面。这意味着如果您在启动 python
时当前位于 Anaconda 目录中,它将 运行 该目录中的 python.exe
,无论您的 PATH 的其余部分是什么样子(activate
命令,如果你不知道的话,它通过修改 PATH 变量中目录的顺序来工作。
解决方案是在启动前从 Anaconda 目录中 cd 离开 Python。
使用 Windows PowerShell,我使用
在 Anaconda 中创建了一个虚拟环境>create conda -n test python=2.7.8
我使用
激活了它>activate test
activating environment "test"...
测试环境不包含包。 Python 是那里唯一的东西。我检查了 test\Lib\site-packages 文件夹,它是空的。 我开始 python
>python
>>>import pandas
>>>pandas.Series(range(1,5))
0 1
1 2
2 3
3 4
dtype: int64
我预计会出现错误消息,因为此虚拟环境中没有安装 pandas。相反,它似乎是从安装了 pandas 的全局 Anaconda 环境中导入 pandas。
我认为虚拟环境应该是隔离的。我是否误解了它们应该如何工作? 如果他们应该被隔离,问题可能是什么?
堆栈溢出的新手,但我想我可以提供帮助。首先,我需要 运行 的命令有点不同(我在 Linux)。也就是说,事实上,虚拟环境应该如何工作。有几件事要尝试: conda create --dry-run -n test python=2.7.8
查看是否 pandas 被安装到 venv(我不知道为什么会这样)。另一个想法,当您 activate test
时,提示实际上会更改为 venv 吗?也许看到:virtualenv-in-powershell
Windows 有一点特殊性会导致像这样令人困惑的情况,那就是它总是隐式地将 .
(当前目录)放在搜索 PATH 的前面。这意味着如果您在启动 python
时当前位于 Anaconda 目录中,它将 运行 该目录中的 python.exe
,无论您的 PATH 的其余部分是什么样子(activate
命令,如果你不知道的话,它通过修改 PATH 变量中目录的顺序来工作。
解决方案是在启动前从 Anaconda 目录中 cd 离开 Python。