何时导入python文件中的代码?

时间:2019-11-25 14:53:15

标签: python

我有两个文件,例如main.pyfoo.py。当我在foo中导入main时,我以为foo.py中的行不会自动运行。

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

main.py

# some imports
from foo_file import foo

foo.main()

foo.py

import os

FILENAME = os.path.dirname(os.path.abspath(__file__))

os.environ["PATH"] += os.pathsep + os.path.join(FILENAME, "assets")

def main():
    # some work involves selenium

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

1 个答案:

答案 0 :(得分:2)

这是一个疯狂的猜测,但是由于您将foo导入为

from foo_file import foo

我假设foo在子目录中,例如

+- main.py
\- foo_file
   \- foo.py

因此,将os.path.abspath(__file__)添加到PATH时,它将添加子目录的路径,而不是包含main.py的目录的路径,该目录可能是包含assets的目录文件夹,因为您说如果添加PATH的代码直接在main中可以正常工作。

如果在print和{{1中都添加了一致的foo.py行,则可以轻松地检查(a)代码的执行时间和执行时间,以及(b)检索的路径。 }}文件,例如

main.py