Yuval Greenfield wrote:
I often need to reference a script's current directory. I end up writing:
import os SRC_DIR = os.path.dirname(__file__)
The question I have is, why do you want to reference the script's current directory?
If the answer is to access other files in that directory, then please consider using importlib.resources (for Python 3.7) and importlib_resources (for Python 2.7, 3.4-3.6).
__file__ simply isn't safe, and pkg_resources can be a performance killer. The problem of course is that if you're writing an application and *any* of your dependencies use either technique, you are going to pay for it. This is exactly why Brett and I wrote importlib.resources. We wanted a consistent API, that allows custom loaders to play along, and which is about as efficient as possible, uses Python's import machinery, and is safe for uses like zipapps.
now-you-don't-have-to-attend-my-pycon-talk-ly y'rs, -Barry