从Jupyter笔记本中安装pip包不能正常工作

时间:2016-07-14 07:42:48

标签: python ipython anaconda jupyter jupyter-notebook

当我在Jupyter Notebook中运行!pip install geocoder时,我获得与在终端中运行pip install geocoder相同的输出,但是当我尝试导入时,地理编码器包不可用。

我正在使用Ubuntu 14.04,Anaconda 4.0.0和pip 8.1.2

安装地理编码器:

!pip install geocoder

The directory '/home/ubuntu/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/home/ubuntu/.cache/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Collecting geocoder
  Downloading geocoder-1.15.1-py2.py3-none-any.whl (195kB)
    100% |████████████████████████████████| 204kB 3.2MB/s 
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): ratelim in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): six in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): click in /usr/local/lib/python2.7/dist-packages (from geocoder)
Requirement already satisfied (use --upgrade to upgrade): decorator in /usr/local/lib/python2.7/dist-packages/decorator-4.0.10-py2.7.egg (from ratelim->geocoder)
Installing collected packages: geocoder
Successfully installed geocoder-1.15.1

然后尝试导入它:

import geocoder

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-603a981d39f2> in <module>()
----> 1 import geocoder

ImportError: No module named geocoder

我也试过关闭笔记本并重新启动它没有任何运气。

编辑:我发现使用终端在/home/ubuntu/.local/lib/python2.7/site-packages中安装地理编码器包并使用笔记本将其安装在/usr/local/lib/python2.7中/ dist-packages不在路径中。 sys.path.append('/usr/local/lib/python2.7/dist-packages')解决了当前会话的问题。

那么如何永久修改路径或告诉pip安装地理编码器的位置?

11 个答案:

答案 0 :(得分:23)

! pip install --user <package>

!告诉笔记本将shell作为shell命令执行。

答案 1 :(得分:4)

这段代码对我有用(Windows 10 / Conda在python 2.x上的jupyter笔记本中安装/执行)

import sys
!{sys.executable} -m pip install fedex

*注意 - 您确实需要导入sys

答案 2 :(得分:2)

在python 3.6下的jupyter笔记本中,以下行有效:

!source activate py36;pip install <...>

答案 3 :(得分:1)

在IPython(jupyter)7.3和更高版本中,有一条神奇的%pip%conda命令将安装到当前内核中(而不是安装到启动该内核的Python实例中)笔记本)。

%pip install geocoder

在早期版本中,您需要使用sys来解决问题,例如the answer by FlyingZebra1

import sys
!{sys.executable} -m pip install geocoder

答案 4 :(得分:0)

尝试使用一些shell魔法:%% sh %%sh pip install geocoder 让我知道它是否有效,谢谢

答案 5 :(得分:0)

conda create -n py27 python=2.7 ipykernel

source activate py27

pip install geocoder

答案 6 :(得分:0)

替代选项: 你也可以使用bash内核然后pip install geocoder在jupyter中创建一个bash单元。这应该工作

答案 7 :(得分:0)

问题在于pyarrow pip被保存到dist-packages(在您的情况下为/usr/local/lib/python2.7/dist-packages)。 Jupyter会跳过此路径,因此pip无法提供帮助。

作为解决方案,我建议在第一个块中添加

import sys
sys.path.append('/usr/local/lib/python2.7/dist-packages')

或者是路径或python版本。在Python 3.5的情况下,这是

import sys
sys.path.append("/usr/local/lib/python3.5/dist-packages")

答案 8 :(得分:0)

这在Jupyter nOtebook / Mac Platform / Python 3中对我有用:

import sys
!{sys.executable} -m pip install -r requirements.txt

答案 9 :(得分:0)

我遇到了同样的问题。

我发现这些说明对我有用。

# Example of installing handcalcs directly from a notebook
!pip install --upgrade-strategy only-if-needed handcalcs

参考:https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html

<块引用>

同时使用 pip 和 conda 时可能会出现问题。组合时 conda 和 pip,最好使用隔离的 conda 环境。仅有的 在使用 conda 安装尽可能多的软件包之后 应该使用 pip 来安装任何剩余的软件。如果修改 都需要环境,最好新建一个环境 而不是在 pip 之后运行 conda。在适当的时候,conda 和 pip 需求应存储在文本文件中。

我们建议您:

仅在 conda 之后使用 pip

使用 conda 安装尽可能多的需求,然后使用 pip。

Pip 应该使用 --upgrade-strategy only-if-needed(默认)运行。

不要使用带有 --user 参数的 pip,避免所有用户安装。

答案 10 :(得分:-4)

使用pip2为我工作:

!pip2 install geocoder
...
import geocoder
g = geocoder.google('Mountain View, CA')
g.latlng
[37.3860517, -122.0838511]
相关问题