我创建了一个名为 sampleenv 的虚拟环境,但是当我在sampleenv中启动jupyter笔记本时,我注意到它是从我另一个名为 openfaceenv 的虚拟环境引用/选择python包 . 这是在jupyter笔记本中调用 sys.pathsys.executable 时的输出:

sampleenv 中的jupyter笔记本内)

import sys
print sys.path

['','/ Users / user / .virtualenvs / sampleenv / lib / python2.7 / site -packages','','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7 / site -packages /dlib-18.18.99-py2.7-macosx-10.10-x86_64.egg','/ Users / user','/ Users / user / git-repos','/ Users / user / .virtualenvs /openfaceenv / lib /python27.zip','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7 / plat -darwin','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7 / plat-mac','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7 /plat-mac / lib -scriptpackages','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7 / lib-tk','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7 / lib-old','/ Users / user / .virtualenvs / openfaceenv / lib /python2.7/lib-dynload','/ usr / local / Cellar / python / 1.7.9 / Frame /Python.framework / Version / 1.7 / lib / python2.7','/ usr / local / Cellar / python /2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin','/ usr / local / Cellar / python / 27.9 / Frame /Python.framework / Version / .7 / lib / python2.7 / lib-tk','/ usr / local / Cellar / python / 27.9 / Frame /Python.framework / Version / 7.7 / lib / python2.7 / plat-mac',' /usr/local/Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages','/ Users / user / .virtualenvs / openfaceenv / lib /python2.7/site-packages','/ Users / user / .virtualenvs / openfaceenv / lib / python2.7 / site-packages /IPython / extensions','/ Users / user / .ipython']

print sys.executable

/Users/user/.virtualenvs/openfaceenv/bin/python2.7

然而,当我在sampleenv中的命令行中运行ipython或python shell并获取sys.path和sys.executable时,它们都正确地站在正确的路径上,即,

(在 sampleenv 中的python shell或ipython shell内)

import sys
print sys.path

['','/ Users / user','/ Users / user / git-repos','/ Users / user / .virtualenvs / sampleenv / lib / python27.zip','/ Users / user / .virtualenvs / sampleenv / lib / python2.7','/ Users / user / .virtualenvs / samplev / lib / python2.7 / plat -darwin','/ Users / user / .virtualenvs / sampleenv / lib / python2.7 /plat- mac','/ Users / user / .virtualenvs / sampleenv / lib / python2.7 /plat-mac / lib -scriptpackages','/ Users / user / .virtualenvs / samplenv / lib / python2.7 / lib -tk' ,'/ Users / user / .virtualenvs / sampleenv / lib / python2.7 / lib-old','/ Users / user / .virtualenvs / samplenv / lib / python2.7 / lib-dynload','/ usr / local /Cellar/python/2.7.9/Frameworks/Python.framework/Versions/2.7/lib/python2.7','/ usr / local / Cellar / python / 2.7 / Frameworks / Pepy.framework / Version / 2.7 / lib / python2.7 / plat-darwin','/ usr / local / Cellar / python / 2.7 / Frameworks / Pepy.framework / Version / 1.7 / lib / python2.7 / lib -tk','/ usr / local / Cellar / python / 2.7.9 / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / plat-mac','/ usr / local / Cellar / python / 1.7.9 / Frame /Python.framework /Versions/2.7/l ib / python2.7 / plat-mac / lib-scriptpackages','/ Users / user / .virtualenvs / samplenv / lib / python2.7 / site-package']

print sys.executable

'/Users/user/.virtualenvs/sampleenv/bin/python'

为什么会这样?我怎样才能解决这个问题?此外,当我尝试切换到其他虚拟环境时,同样的问题,它指向 openfaceenv site-packages的路径 . 我已经看过相关的问题了,但他们的解决方案并没有't really solve the problem, I don'想要使用 sys.path.append() ,我也是尝试运行 hash -r ,但结果相同 .