Skip to content

cProfile cannot run code that pickles objects defined in __main__ #132737

Closed

Description

@aneeshdurg

Bug report

Bug description:

import pickle
import sys
from dataclasses import dataclass, field


@dataclass
class State:
    x: list[int] = field(default_factory=list)

print(pickle.dumps(State([0])))

The following code will run successfully on it's own, but will fail if run with cProfile, with the message that __main__.State could not be found by.

CPython versions tested on:

CPython main branch

Operating systems tested on:

Linux

Linked PRs

Activity

  1. added
    stdlibStandard Library Python modules in the Lib/ directory
    on Apr 19, 2025
  2. added a commit that references this issue on Apr 24, 2025
  3. gaogaotiantian commented on Apr 24, 2025

    @gaogaotiantian
    Member

    Thank you for reporting and fixing the issue!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

stdlibStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or error

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions