On Mon, Feb 12, 2018 at 9:40 AM, lampahome <pahome.c...@mirlab.org> wrote: > I want to know abspath of python script followed by steps below. > > 1. *built it to byte code by py_compile.* > 2. *execute it to check abspath.* > > But I got *2 results* when I execute it.I found the *results based on the > path of script* followed by py_compile. > > Here is my script test.py : > > import os > import inspect > print > os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe()))) > > Build it with py_compile, then got 2 results when I enter *different path > of test.py*: > > *enter the folder and compile with only script name.* > > [~] cd /usr/local/bin/ > [/usr/local/bin/] python -m py_compile test.py > [/usr/local/bin/] cd ~ > [~] python /usr/local/bin/test.pyc > /home/UserXX > > *In other folder and compile with absolute script name.* > > [~] python -m py_compile /usr/local/bin/test.py > [~] python /usr/local/bin/test.pyc > /usr/local/bin
A code object has a co_filename attribute for use in creating tracebacks. This path isn't necessarily fully qualified. Here are a couple of examples using the built-in compile() function: >>> compile('42', 'test.py', 'exec').co_filename 'test.py' >>> compile('42', '/usr/local/bin/test.py', 'exec').co_filename '/usr/local/bin/test.py' py_compile.compile() does not normalize the filename. -- https://mail.python.org/mailman/listinfo/python-list