获取导入文件的目录

Get directory of imported file

我正在制作的包中有一个文件,它使用 os.getcwd() 到 return 文件目录。 例如:

# myfile1py

import os
def getfiledir():
    return os.getcwd()

上面的代码returns C:\Users\Someone\Python36-32\Lib\site-packages\,也就是文件的正确目录。但是,当我导入它时,出现了问题。

# myfile2.py

import myfile
print(myfile.getfiledir())

以上代码为myfile2.py中的代码。导入 myfile1.py 后,我 运行 函数 getfiledir() 并且它 return 是 myfile2.py (C:\Users\Someone\Documents) 的目录而不是 C:\Users\Someone\Documents 的目录导入文件 (myfile1.py).

如何获取 myfile2.py return myfile1.py 目录中的代码?

请记住,我希望 return 目录中的代码位于导入文件 (myfile1.py) 中,而不是导入程序文件中。

如有任何帮助,我们将不胜感激。

使用os模块。它在标准库中。

import os
os.path.dirname(myfile.__file__)

更多详情:How to retrieve a module's path?