我是Python新手,试图了解如何正确设置模块。
我有以下内容:
dir1
pack1.py
dir2
pack2.py
...当然,在我的目录中,我有__init__.py
现在,我试图让pack2.py继承自pack1.py
得到以下信息:
class Pack2(Pack1):
def __repr__(self):
....my code goes here....
我想将其导入我的程序,以便我可以使用Pack2
我的问题:我正在尝试找出要在我的程序和pack2.py文件中使用的import语句。
我尝试过(在我的程序中):
from dir1.dir2 import pack2
和Pack2
from dir1 import pack1
但没有骰子。这看起来是否正确?
答案 0 :(得分:2)
您是否设置了Python路径?如果还没有,那么Python解释器就不可能找到你所有的模块。
每个脚本的目录都在Python路径中,因此模块可以导入相同或更低目录中的其他模块。但是需要从父目录导入内容的模块需要做一些额外的工作。
解决方案是修改sys.path:
import sys
# Add parent directory to path
sys.path.append('..')
答案 1 :(得分:2)
在python中执行import module
并不会使模块中定义的所有名称在当前命名空间中直接可用...您需要使用module.name
来访问它们。
如果您希望直接使用模块中定义的所有名称,则必须执行from module import *
。
为了能够确定问题在哪里,应该显示__init__.py
文件的内容,但假设它们是为了将子目录用作模块而创建的空文件,那么我认为您应该使用:
from dir1.dir2.pack2 import Pack2
from dir2.pack2 import Pack2