繁体   English   中英

IPython sys.path与python sys.path不同

[英]IPython sys.path different from python sys.path

我通常使用IPython,并且最近才注意到常规python shell中导入的搜索路径是错误的。 根据我的理解,sys.path继承自PYTHONPATH(虽然我不知道PYTHONPATH住在哪里),这在IPython中是不同的? 我担心这个有影响的装置。 比如我刚尝试过

pip install --upgrade gensim

失败,因为它无法解决我已经安装的scipy依赖项。 所以我在Ipython中找到了更深入的鸽子

import gensim
gensim.__version__

在python中返回.9.1

import gensim
gensim.__version__

返回.8.9

以下是Ipython版本的sys.path的样子:

['',
    '/Users/change/anaconda/bin',
    '/Users/change/anaconda/lib/python2.7/site-packages/pybing-0.12-py2.7.egg',
    '/Users/change/anaconda/lib/python2.7/site-packages/httplib2-0.8-py2.7.egg',
    '/Users/change/anaconda/python.app/Contents/lib/python27.zip',
    '/Users/change/anaconda/python.app/Contents/lib/python2.7',
    '/Users/change/anaconda/python.app/Contents/lib/python2.7/plat-darwin',
    '/Users/change/anaconda/python.app/Contents/lib/python2.7/plat-mac',
    '/Users/change/anaconda/python.app/Contents/lib/python2.7/plat-mac/lib-scriptpackages',
    '/Users/change/anaconda/python.app/Contents/lib/python2.7/lib-tk',
    '/Users/change/anaconda/python.app/Contents/lib/python2.7/lib-old',
    '/Users/change/anaconda/python.app/Contents/lib/python2.7/lib-dynload',
    '/Users/change/anaconda/lib/python2.7/site-packages',
    '/Users/change/anaconda/lib/python2.7/site-packages/PIL',
    '/Users/change/anaconda/lib/python2.7/site-packages/pygoogle',
    '/Users/change/anaconda/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info',
    '/Users/change/anaconda/lib/python2.7/site-packages/IPython/extensions']

和常规的python脚本sys.path:

['',
'/Users/change/anaconda/lib/python2.7/site-packages/pybing-0.12-py2.7.egg',
'/Users/change/anaconda/lib/python2.7/site-packages/httplib2-0.8-py2.7.egg',
'/Users/change/anaconda/lib/python27.zip',
'/Users/change/anaconda/lib/python2.7',
'/Users/change/anaconda/lib/python2.7/plat-darwin',
'/Users/change/anaconda/lib/python2.7/plat-mac',
'/Users/change/anaconda/lib/python2.7/plat-mac/lib-scriptpackages',
'/Users/change/anaconda/lib/python2.7/lib-tk',
'/Users/change/anaconda/lib/python2.7/lib-old',
'/Users/change/anaconda/lib/python2.7/lib-dynload',
'/Users/change/anaconda/lib/python2.7/site-packages',
'/Users/change/anaconda/lib/python2.7/site-packages/PIL',
'/Users/change/anaconda/lib/python2.7/site-packages/pygoogle',
'/Users/change/anaconda/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info']

你现在可能已经太迟了,但这里的答案也可能对你有所帮助: ipython读取错误的python版本 基本上ipython脚本可以直接引用特定的python二进制文件,而不是你直接运行python时得到的那个。

我在我的mac上安装了一个brew版本的Python。 由于某些原因无法使用系统库。 brew uninstall python它再次工作,因为默认的python被切换回/ usr / bin / python。

还在玩which pythonwhich ipython和打开/ usr / bin / python,/ usr / local / bin / python,/ usr / bin / ipython和/ usr / local / bin / ipython并在那里进行导入可能有帮助你会发现它究竟出了什么问题。

您可能已激活虚拟环境而忽略系统路径。

可以通过在终端中运行它来修复它(关闭笔记本等之后):

virtualenv --system-site-packages ~

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM