我有一个简单的项目试图说明Python路径是如何工作的。下面是我当前的项目结构。main.py
看起来像这样,
import pathlib
import sys
cwd = pathlib.Path(__file__).parent.resolve()
source_directory = cwd / 'depth_1' / 'depth_2' / 'depth_3'
sys.path.append(str(source_directory))
每个row_x_file.py
只包含一个函数,
def row_x_print():
print("Inside row_x_file.py")
(With每个__init__.py
都是from . import *
现在,因为我已经将depth_3
的路径添加到sys.path
中,所以我可以成功地输入import row_1
而不会出错。但是,我永远无法访问从__init__
导出的函数,也就是说,我无法在import row_1
之后运行row_1_print()
,但是import row_1
运行无误。from row_1 import row_1_print
似乎也没有成功。
如何在成功键入import row_1
后运行row_1_file.py
内部的函数?
1条答案
按热度按时间6l7fqoea1#
在该示例中,根本不需要追加到python路径。
对于使用此类文件重新创建的示例:
代码:
main.py
__init__.py
test.py
您将得到以下输出:
现在,有了一个工作示例,为了演示路径的行为,请将
main.py
编辑为:以下哪个例子仍然有效,尽管路径已经改变,因此现在不需要库源的
d1.d2.d3
前缀。请注意不要覆盖库的名称,因为可能很难查明为什么看似很好的代码不起作用的问题。问题:What is init.py for?和python module` documentation可能对进一步的研究有用。