[Scons-users] Single binary SCons and byte-code caching

Jay West jhdub23 at gmail.com
Sat Mar 19 01:29:20 EDT 2022


One of the best features of SCons is the ease of environment control.
Similar to Eric, we use SCons everywhere as a glorified top-level
supervisor script, for environment control alone, without any of the
dependency management stuff.  For python package installations, our scons
script looks like:

env = Environtment.Clone()
# bunch of environment settings
env.check_run(env.subst(f'$PREFIX/bin/python3 -m pip install --no-binary
:all: --no-index --find-links pip_downloads -r {requirements_file_name}'))

We build everything from source, and some python packages require
compilation.  This ensures that our builds are always consistent and
reproducible.

Jay


On Thu, Mar 10, 2022 at 8:58 PM Eric Fahlgren <ericfahlgren at gmail.com>
wrote:

> On 3/10/22 19:31, Brad Kraemer wrote:
>
>> > Hi Fellows,
>> >
>> > That makes sense. I don't currently have a need for an installer or
>> > self-contained binary (just a nice warm-fuzzy feeling thought about it).
>> > Judging from your response's though, it sounds like it would be a
>> > non-trivial amount of experimenting to get it to work (with all the
>> > potential corner-cases and whatnot). If I find myself in need of another
>> > side-project though I might do some experimenting and get back to you
>> > about any positive results.
>>
>
> My experience has been that SCons and any "freeze" programs (of which Mats
> mentions several) are complementary.  We used SCons to build our runtime
> artifacts, including Python, Cython, C/C++ extension modules and so on,
> then as its next step, invoke PyInstaller (py2exe before it died, played
> with cx-Freeze a bit) to package the application exe, dlls and resources in
> a distributable form.  (And subsequent to that, SCons runs NSIS or
> InnoSetup or MSI to package those resources into a single file installer.)
> This was all for Windows customers, but one of the attractions of
> PyInstaller was its cross platform support.
>
> I always treated SCons as the supervisor, and PyInstaller as just another
> fancy compiler or linker for it to supervise.
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20220318/cb0eb55d/attachment.htm>


More information about the Scons-users mailing list