簡體   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