Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7429555
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 29, 20262026-05-29T08:59:16+00:00 2026-05-29T08:59:16+00:00

In python you can compile() string to be executed faster with exec(). But as

  • 0

In python you can compile() string to be executed faster with exec(). But as soon as i use it, we lost information when an exception happen in the exec.

For example, here is a code snippet that calling a unknown method (for demo purposes):

code = 'my_unknown_method()'
bytecode = compile(code, '<string>', 'exec')

And later, i’m calling exec on that bytecode:

exec bytecode

The traceback showed is:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    exec bytecode
  File "<string>", line 1, in <module>
NameError: name 'my_unknown_method' is not defined   

The “exec()” frame is now obscure. I would like to have a better exception like:

Traceback (most recent call last):
  File "test.py", line 3, in <module>
    exec "my_unknown_method()"
  File "<string>", line 1, in <module>
NameError: name 'my_unknown_method' is not defined   

Any thoughts ?

Notes:

  • I don’t want to use the second argument of compile (the filename)
  • I have tested to play with inspect and modify f_code on the frame, but it’s readonly attribute.

EDIT: after looking more to sys.excepthook, i’ve seen that in python source code/traceback.c, when python want to show the line content, they are fopen() directly the file if found. No hook available at all to display our own content. The only way would be to create in real fake filename on disk ? Anyone ?

EDIT2: i checked some jinja2 debug code, and they are rewriting traceback too, but not for content. Would i need a custom except hook ? My concerns with it is since it’s not in the traceback itself, if an user/module/whatever take the exception, the traceback will not contain valuable information.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-29T08:59:17+00:00Added an answer on May 29, 2026 at 8:59 am

    After a deep search, it’s not possible, CPython is using its own API to determine where the file is etc, and it cannot be patched in pure Python.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

In Python, I can compile a regular expression to be case-insensitive using re.compile :
How can I compile and run a python file (*.py extension)?
Assuming the webserver is configured to handle .exe , Can i compile a python
I can't tell from the Python documentation whether the re.compile(x) function may throw an
In python you can use a tuple in a formatted print statement and the
In python we can use multiprocessing modules. If there is a similar library in
In Python I can use the iterkeys() method to iterate over the keys of
Can someone explain this weird behavior of python re? Obviously the string 'test' does
Can I run the python interpreter without generating the compiled .pyc files?
I know python can be run on GAE what is different erlang and python

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.