Skip to content

Shrink WinPhyton installation? Extract site-packages from .zip only on demand? #1425

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
pstein opened this issue Oct 23, 2024 · 4 comments

Comments

@pstein
Copy link

pstein commented Oct 23, 2024

I installed recently to full WInPython v3.12.4 on my Windows 10 system.

As I noticed this installation requires huge 4,85 GB (!) disk space.
Ok, I still have 90 GB free on my 1 TB SSD. But I would feel better if it would be smaller.
Python is by far my biggest space consuming software on my disk/SSD.
I am thinking about how users can reduce disk space for WinPython.

Since I am not a heavy Python user but uses it only occasionally and only some packages I can think of the following mechanism:

All "site-packages" remain zipped until there are really imported in a Python script.
Only if a Python script runs which executes an import this (and only this !) package is extracted from *.zip archive.

Is this somehow possible?

@stonebig
Copy link
Contributor

Question has been raised on Pip per another person, in may 2023: pypa/pip#12022

@stonebig
Copy link
Contributor

You can uninstall packages, and compat a "reduce version" of WinPython.
Intermediate size of Winpython have never been so popular.

The trend of ever-bigger distro comes from:

  • more package with nice functionalities
  • each pack gets bigger over time
  • Cpython-3.12 in particular didn't care about the size of their generated package
  • difficulty to abandon heavy packages: Qt5, Torch

Your other alternative is to :

  • rely on a small WinPythonDot (that would still grow a bit when "JIT" will be included) + trusted package source (to come)
  • count on cpython taking the size matter challenge, but it's not in their paid priorities yet

@pstein
Copy link
Author

pstein commented Oct 26, 2024

As far as I understand the *.pyc files resp. pycache folder contains pre-compiled *.py lib files.
What happens if I deleted them all?
Are they - only if they are accessed by *.py scripts - automatically re-compiled and real-time created again?

And what about the other invers side:
Are the *.py source files in "Lib" folder only for compilation?
So if all *.pyc files remain I could delete all the *.py stuff in "Lib" (sub)folders..
Does that harm the running of my user *.py scripts?

@stonebig
Copy link
Contributor

stonebig commented May 9, 2025

for now, you have the solution to get a small winpython "dot", and get whatever you want in the requirements with hash after

see https://github.com/winpython/winpython/releases/tag/15.3.20250425final

you will just miss pandoc.exe

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants