我正在尝试在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上使用它。
答案 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