从 Python 中的其他目录导入 class

Import class from other directory in 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!")

我想将位于 File2.pyFoo class 导入 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

如您所见,我在 phone 上,因为我现在不在家。它应该与 Linux 相同。我添加了 __init__.py 文件,因为在其他问题中提到了它们。

我对MD98s答案的实际结构:

Desktop:
    Code:

        findPath:
            __init__.py
            findPath.py
            testFindPath.py #empty

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

我想将 RSA class 从 RSA.py 导入 findPath.py

所以,如果我有:

Desktop:
    Code:

        findPath:
            __init__.py
            findPath.py
            testFindPath.py #empty

        __init__.py
        useful.py

useful.py:

class RSA:
    def encript(self,msg):
        return 123456778

class Hash:
    def hash(self):
        return 1234456778

我会将 Hash 导入 findPath.oy 中:

from .useful import Hash

我对你的文件夹结构感到困惑,但通常你可以导入 类 或这样的方法,假设你正在编写的脚本在你的项目目录中:

from foldername.filename import Foo

from folder name.foldername2.filename import Foo

希望对您有所帮助。否则,请更准确地说明您的文件夹结构。