从Python中的其他目录导入类

问题描述

对于任何有兴趣的人: 最简单的解决方案是

import sys
sys.path.append('../')

from Folder2.Folder2-1.File2 import Foo

我有这个结构:

Program:
    Folder1:
        __init__.py
        File1.py

    Folder2:
        __init__.py
        Folder2-1
            __init__.py
            File2.py

文件1:

from .Folder2.Folder2-1.File2 import Foo
Foo().hello()

文件2:

class Foo:
    def hello(self):
        print("Hello!")

我想将Foo中的File2.py类导入到File1.py中。 我尝试过:

from .Folder2.Folder2-1.File2 import Foo 这样

  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py",line 31,in <module>
    start(fakepyfile,mainpyfile)
  File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py",line 30,in start
    exec(open(mainpyfile).read(),__main__.__dict__)
  File "<string>",line 1,in <module>
ImportError: attempted relative import with no kNown parent package

您会看到我在用手机,因为我现在不在家。它应该与Linux tho相同。我添加__init__.py文件,因为在其他问题中提到了它们。

我对MD98的实际结构回答:

Desktop:
    Code:

        findpath:
            __init__.py
            findpath.py
            testFindpath.py #empty

        useful:
            __init__.py
            RSA:
                __init__.py
                RSA.py
                RSAresources.py

我想将RSA的{​​{1}}类导入RSA.py

所以,如果我有

findpath.py

useful.py:

Desktop:
    Code:

        findpath:
            __init__.py
            findpath.py
            testFindpath.py #empty

        __init__.py
        useful.py

我将使用以下内容class RSA: def encript(self,msg): return 123456778 class Hash: def hash(self): return 1234456778 导入Hash

findpath.oy

解决方法

我对您的文件夹结构感到困惑,但是通常您可以导入这样的类或方法,前提是您要编写的脚本位于项目目录中:

from foldername.filename import Foo

from folder name.foldername2.filename import Foo

希望这对您有所帮助。否则,请更精确地了解您的文件夹结构。