Python:已导入的导入模块

时间:2017-05-18 13:36:36

标签: python python-3.x python-import

我想向默认情况下包含在我的python发行版(anaconda 4.3.14)中的库(imblearn,v.0.3.0)提交拉取请求。在提交之前,我想测试我的克隆回购。因此,我需要从不同位置(克隆回购)重新加载模块,而不是相同默认位置,如所描述的here

将位置添加到路径作为第一个元素不起作用:

>>> import sys
>>> sys.path.insert(0, 'C:\\my repositories\\imbalanced-learn\\imblearn')

打印版本仍会显示anaconda文件夹中的version.py

的结果
>>> from imblearn import version
>>> version.__version__
'0.3.0.dev0'

有非hacky方式吗?

1 个答案:

答案 0 :(得分:1)

我明白了:

>>> import os, sys
>>> dir = os.path.dirname(os.path.abspath(os.path.realpath('.')))
>>> libRoot = os.path.join(dir, 'imbalanced-learn') # include parent folder of library
>>> sys.path.insert(0,libRoot) # NOTE: insert at beginning of path array

导致

>>> from imblearn import version
>>> version.__version__
'0.3.1.pr'

假设文件结构如下,例如jupyter笔记本从root文件夹启动:

root
|- main.py
|- imbalanced-learn/
   |- imblearn/
      |- __init__.py
      |- setup.py
      |- ...