Python中Windows服务的相对路径问题

0 投票
1 回答
711 浏览
提问于 2025-04-16 12:31

我写了一个小的Windows服务,使用py2exe编译成了一个exe文件,它可以读取一个文件。运行得很好,不过我只能用绝对路径来访问这个文件,使用相对路径就不行。在.net中,你可以这样做:

System.Reflection.Assembly.GetEntryAssembly().Location

那么,有没有类似的选项可以在Python中获取.exe文件的路径呢?

最好的祝福,

安德斯

1 个回答

1

你有几种选择。如果你已经有了一个模块对象,你可以用 <module>.__file__ 来获取它的路径:

>>> import time
>>> time.__file__
'/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload/time.so'

不过,很多时候你可能想知道当前模块的位置,这时候你可以使用:

import inspect

path = inspect.currentframe().f_code.co_filename

(另外要记住,这可以是任何Python可以加载的东西,比如 .pyd、.pyc、.so、.dll 等等。)

撰写回答