从Python中的其他目录导入类
对于任何感兴趣的人: 最简单的解决办法是从Python中的其他目录导入类,python,directory,directory-structure,Python,Directory,Directory Structure,对于任何感兴趣的人: 最简单的解决办法是 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
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.py
中的Foo
类导入File1.py
。
我试过:
from.Folder2.Folder2-1.File2导入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
我想将RSA
类从RSA.py
导入findPath.py
因此,如果我有:
Desktop:
Code:
findPath:
__init__.py
findPath.py
testFindPath.py #empty
__init__.py
useful.py
有用的.py:
class RSA:
def encript(self,msg):
return 123456778
class Hash:
def hash(self):
return 1234456778
我会将Hash
导入findPath.oy
中,方法是:
from .useful import Hash
我对您的文件夹结构感到困惑,但通常您可以像这样导入类或方法,假设您正在编写的脚本位于项目目录中:
从foldername.filename导入Foo
或
from folder name.foldername2.filename导入Foo
我希望这对你有帮助。否则,请更精确地描述您的文件夹结构。folder2没有一个
\uuu init\uuuu.py
文件使其成为一个模块。当您能够创建并响应反馈时,您还应该等待提问。我忘了把它添加到我的问题中。请检查解决方案。在我的桌面上有一个名为Code的文件夹。在代码中,我有其他以项目命名的文件夹,比如“findPath”。在“findPath”中有一个名为“findPath.py”的文件。在“代码”中有一个名为“有用”的文件夹,其中包含有用的项目,这些项目存储在我创建的子文件夹中,就像RSA实现一样。现在我想从代码中“有用”文件夹中“RSA”文件夹中的“RSA.py”文件中获取“RSA”类。我将把这个添加到我的问题中。我在这里发现了一个类似的问题和解决方案:我建议将经常在一个文件中使用的有用函数存储在其他脚本的相邻文件夹中。例如,“代码”包含带有文件“utils.py”的“utils”,您可以在其中存储所有有用的函数。在“代码”中,创建其他文件夹,如“findPath”。从“findPath”中的脚本中,您可以像我刚才展示的那样导入函数和类。谢谢MD98。现在使用链接中的代码。
from .useful import Hash