从 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.py
的 Foo
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
希望对您有所帮助。否则,请更准确地说明您的文件夹结构。
任何感兴趣的人: 最简单的解决方案是
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
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
希望对您有所帮助。否则,请更准确地说明您的文件夹结构。