当python文件中的代码运行时';什么是进口的?

当python文件中的代码运行时';什么是进口的?,python,Python,我有两个文件,比如main.py和foo.py。当我在main中导入foo时,我认为foo.py中没有在函数中自动运行的行 但是,当我在foo中将一个可执行文件添加到PATH中,并调用foo的main,该main涉及应该在PATH中的可执行文件时,它给出了一个错误:geckodriver可执行文件必须在PATH中。如果我在导入main.py之后立即将其添加到PATH,它将正常工作。以下是示例代码: main.py: #一些导入 从foo_文件导入foo foo.main() foo.py: 导

我有两个文件,比如
main.py
foo.py
。当我在
main
中导入
foo
时,我认为
foo.py
中没有在函数中自动运行的行

但是,当我在
foo
中将一个可执行文件添加到
PATH
中,并调用
foo
的main,该main涉及应该在
PATH
中的可执行文件时,它给出了一个错误:geckodriver可执行文件必须在PATH中。如果我在导入
main.py
之后立即将其添加到
PATH
,它将正常工作。以下是示例代码:

main.py

#一些导入
从foo_文件导入foo
foo.main()
foo.py

导入操作系统
FILENAME=os.path.dirname(os.path.abspath(_文件__))
os.environ[“PATH”]+=os.pathsep+os.PATH.join(文件名,“资产”)
def main():
#有些工作涉及硒

为什么第一次尝试不起作用并出现错误?谢谢。

这是一种猜测,但由于您将
foo导入为

from foo_file import foo
我假设
foo
位于子目录中,例如

+- main.py
\- foo_file
   \- foo.py
因此,当您将
os.path.abspath(\uuu file\uuuu)
添加到路径中时,它将添加子目录的路径,而不是包含
main.py
的目录的路径,该目录可能包含
资产
文件夹,因为您说过,如果添加代码的路径直接位于
main
中,它就可以正常工作

如果在
foo.py
main.py
文件中都添加了一致的
print
行,则可以轻松检查(a)代码是否执行以及何时执行,以及(b)检索的路径,例如

print(__file__, os.path.dirname(os.path.abspath(__file__)))

哦,是的,你完全正确,我怎么没看到。谢谢,我会尽快尝试。你知道我怎样才能从foo获得资产路径吗?