来自/ usr / local / bin /目录的相对路径

时间:2019-01-22 02:43:38

标签: python import

我试图将我的“可执行” python文件放置在/ usr / local / bin /目录中,以便可以在bash中的任何位置调用该程序(超循环)。

但是,其余应用程序存储在另一个目录/ root / superloop /

我在/ root / superloop中有 init .py文件,在/ usr / local / bin /下的文件superloop中我的相对导入路径是:

from ...root.superloop.auditdiff import auditdiff

执行时抛出错误:

Traceback (most recent call last):
  File "/usr/local/bin/superloop", line 3, in <module>
    from ...root.superloop.auditdiff import auditdiff
ValueError: Attempted relative import in non-package

这是树:

|-- \\
|-- auditdiff.py
|-- __init__.py
|-- multithread.py

1 个答案:

答案 0 :(得分:3)

错误告诉您,软件包与目录不同;您不能使用相对导入来导航磁盘结构。

为了使您的“可执行文件”在/root/superloop中找到软件包,您可以操纵sys.path来让Python知道在哪里寻找软件包:

sys.path.append('/root/superloop')
from auditdiff import auditdiff