问题描述
对于任何有兴趣的人: 最简单的解决方案是
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
希望这对您有所帮助。否则,请更精确地了解您的文件夹结构。