Re: [PATCH v3 0/2] Don't create Python bytecode when building the kernel

Akira Yokosawa
2025-04-23T09:30:54Z

Hi Andy,

On Tue, 22 Apr 2025 10:57:33 +0300, Andy Shevchenko wrote:
> On Mon, Apr 21, 2025 at 10:35:29AM -0600, Jonathan Corbet wrote:
>> Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> writes:
[...]

>> > Would it be possible to properly support O= and create pyc / pycache
>> > inside the object/output dir?
>>
>> I have to confess, I've been wondering if we should be treating the .pyc
>> files like we treat .o files or other intermediate products. Rather
>> than trying to avoid their creation entirely, perhaps we should just be
>> sure they end up in the right place and are properly cleaned up...?
>>
>> To answer Dmitry's question, it seems that setting PYTHONPYCACHEPREFIX
>> should do the trick?
>
> It's not so easy. The Python is written in a way that it thinks it will never
> runs object files separately from the source. Hence that variable sets only
> the folder per script as _home_ for the cache. It's completely unusable. They
> took it wrong. It still can be _painfully_ used, but it will make Makefiles
> uglier.

But, PYTHONPYCACHEPREFIX can be set as an environment variable.

For example, try:

export PYTHONPYCACHEPREFIX="$HOME/.cache/__pycache__"

Wouldn't it be good enough for you?

Regards,
Akira