如何引用当前正在Emacs Lisp中加载的文件?

如何引用当前正在Emacs Lisp中加载的文件?,emacs,elisp,Emacs,Elisp,我希望包含对非elisp文件(一个小型Python程序)的引用,并希望能够说“它与当前文件位于同一目录中,但具有不同的文件名。”在许多脚本语言中,有类似于\uuuuuu file\uuuuu(在PHP中)的内容可以获得当前文件的绝对路径 如果要包含的文件在加载路径中,那么我可以通过(查找库“file.py”t)找到它,但是如果文件不在加载路径中,我会有点卡住 那么,Emacs Lisp文件是否有办法找到自己的绝对路径(加载时,不访问)?M-x描述变量加载文件名 load-file-name is

我希望包含对非elisp文件(一个小型Python程序)的引用,并希望能够说“它与当前文件位于同一目录中,但具有不同的文件名。”在许多脚本语言中,有类似于
\uuuuuu file\uuuuu
(在PHP中)的内容可以获得当前文件的绝对路径

如果要包含的文件在
加载路径中
,那么我可以通过
(查找库“file.py”t)
找到它,但是如果文件不在加载路径中,我会有点卡住


那么,Emacs Lisp文件是否有办法找到自己的绝对路径(加载时,不访问)?

M-x描述变量加载文件名

load-file-name is a variable defined in `C source code'.

Documentation:
Full name of file being loaded by `load'.
您可能还对
符号文件
函数感兴趣,该函数将告诉您定义指定函数或变量的绝对文件名


如果您想了解更多,可以检查
load in progress
变量。如果这是
nil
,则没有正在进行的加载(您可能正在缓冲区中
eval
)。在这种情况下,您可以尝试
(缓冲区文件名)
获取文件名。

更改标题以反映所提出的问题。这个问题的原始标题会让我想回答“变量
缓冲区文件名
”,这不是您所问的。更简单的幻想:
(或加载文件名(缓冲区文件名))
投票支持
符号文件
,允许自引用代码。当前正在
(defvar my locn nil)(setq my locn(符号文件'my locn))
上使用变量。