在Google协作平台上使用自定义程序包

时间:2018-12-15 13:40:32

标签: python python-3.x jupyter-notebook google-colaboratory python-packaging

我正在尝试在Google Colaboratory上使用我的自定义程序包,而这样做时遇到了一些奇怪的错误。请注意,我尝试使用的程序包可以在我的计算机上正常运行。

这是一个名为rohan的Python 3.6程序包。就功能而言,这是非常基本的。

首先,我通过pip命令(pip install rohan)安装了它。但是我遇到了ModuleNotFoundError错误。

import rohan
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-9046ed7b4857> in <module>()
----> 1 import rohan

ModuleNotFoundError: No module named 'rohan'

然后我从源代码安装了它。

%%bash
git clone https://github.com/rraadd88/rohan.git
cd rohan
pip install -e .

这一次,我可以导入主模块而没有任何错误(import rohan)。但是,如果尝试导入子模块(dandage),则会得到ImportError

from rohan import dandage
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-5-6ea35256170e> in <module>()
----> 1 from rohan import dandage

ImportError: cannot import name 'dandage'

对我来说,程序包的结构看起来还可以。

rohan
├── MANIFEST.in
├── rohan
│   ├── dandage
│   │   ├── subsubmodule
│   │   │   ├── script.py
│   │   │   └── __init__.py
|   |   ├── script.py
|   |   └── __init__.py
|   ├── script.py
│   └── __init__.py
├── setup.cfg
└── setup.py

来源:https://github.com/rraadd88/rohan

也正如我所说,该软件包在我的计算机上运行良好。所以我不确定为什么我不能在Colaboratory上使用它。

1 个答案:

答案 0 :(得分:1)

您需要将克隆存储库的目录添加到sys.path。例如:

!git clone https://github.com/rraadd88/rohan.git
import sys
sys.path.append('/content/rohan')
from rohan import dandage

这是一个完整的笔记本: https://colab.research.google.com/drive/1LSC_HyfbuOlEn7pfZYAjiOSE1fp6uipl