无法使用符号链接“相对导入”本地Python库

时间:2019-07-30 10:02:56

标签: python import jupyter-notebook python-import symlink

我的项目有两个主文件夹:sourceCodelibHighlighted file tree here

我正在\sourceCode\mainFile.ipynb中工作,想导入一个名为lib的{​​{1}}驻留的库,该库有一个modifiedLibrary文件。

当前,我正在为relative-importing库使用符号链接。符号链接位于__init__.py中,并被称为\sourceCode,内容如下:

sym_link

在项目中,库和符号链接具有相同的名称

但是当我使用

导入python时
../lib/modifiedLibrary/modifiedLibrary

我收到import modifiedLibrary

我了解到相同的代码可以在我目前无法访问的另一台设备上运行,而且我似乎也没有找到问题所在。

我通过以下方式成功地包含了所需的库:

  1. 暂时将工作目录更改为图书馆ModuleNotFoundError: No module named 'modifiedLibrary'所在的位置,
  2. 导入库
  3. 然后还原到我的原始目录

但是我想知道当前符号链接的问题所在。

Windows 10 / Python 3.7.3 / Jupyter

Relevant Question: Interactive Python - solutions for relative imports

1 个答案:

答案 0 :(得分:0)

我发现的另一种解决方案不是将工作目录临时更改为包括本地模块,而是在导入之前将设备上模块的位置添加到sys.path上:

import sys
sys.path.append('C:/Users/user/myProject/../modifiedLibrary/')

import modifiedLibrary

它没有使用符号链接,但目前看来可以解决问题。当代码共享并在另一台设备上运行时,将是一个问题。