zimport - nén và quản lý hàng loạt gói Python
(github.com/waveware4ai)Giới thiệu zimport, công cụ hữu ích khi bạn cảm thấy gánh nặng từ vô số tệp khi quản lý các gói Python.
Giới thiệu
zimportlà công cụ thay thế và cải tiếnzipimporttiêu chuẩn của Python.zimportđược dùng để tải và quản lý các gói Python từzip-archives. Nói cách khác, bạn có thể quản lý gói Python giống như file jar của Java. Ngoài ra, công cụ này cũng hỗ trợ tải thư viện động (.dll,.pyd,.so).- Sau khi tạo ra công cụ này, thư mục làm việc Python của tôi đã giảm từ khoảng 160GB với hàng triệu tệp xuống còn mức 80GB và khoảng 10 nghìn tệp.
Tính năng chính
- Hỗ trợ tải thư viện động từ
zip-archive(.pyd,.dll,.so,.dylib) - Hỗ trợ đọc tệp nội bộ (ví dụ: tệp môi trường) khi gọi
read()bên trongzip-archive, tương tựgetresourcecủa Java - Hỗ trợ các tệp
.pycđã biên dịch (name.cpython-version.pycvà thư mục__pycache__)
Công nghệ sử dụng
importlib,meta_path,path_hooks- function intercept (
standard open,stat,read,ctypes.WinDLL,ctypes.CDLLv.v.)
Môi trường sử dụng
- Hỗ trợ Python trên win/linux/macosx
- Hỗ trợ Python phiên bản 3.8~3.12
Cách sử dụng
python -m pip install zimport
import zimport
- Chỉ cần nén toàn bộ các gói trong thư mục
lib/site-packagevà thêm vàosys.pathlà có thể hoạt động bình thường. - Tất nhiên, nếu bạn có thời gian, bạn cũng có thể nén theo từng gói rồi thêm các gói vào
sys.paththeo phụ thuộc giống như jar của Java. - Ngoài ra, vì các package sau khi đã được nén có thể được chia sẻ để dùng chung, tôi nghĩ điều này cũng giúp giảm lãng phí dung lượng ổ cứng.
Cuối cùng
- Mã nguồn đã được công khai trên GitHub và phiên bản hiện tại là 0.1.4. Một số package (ví dụ như transformers) vẫn chưa được hỗ trợ, nhưng tôi đã xác nhận rằng các package lớn như torch, torchvision, numpy, pandas hoạt động bình thường.
- Ngoài ra, nó cũng rất hợp với portable Python. Tôi cũng đã tải nó lên GitHub. Bản Linux được tôi tự biên dịch, còn bản Windows là phiên bản embeded đã được chỉnh sửa.
- Nếu trong quá trình sử dụng có lỗi hoặc vấn đề phát sinh, vui lòng báo cáo để tôi tiếp tục cải thiện.
Xin cảm ơn. Chúc bạn một ngày tốt lành.
2 bình luận
import, chẳng hạn như góiavsử dụngcython.Nếu còn gói nào khác không hoạt động, vui lòng báo cáo để tôi tiếp tục chỉnh sửa.
transformersgiờ cũng đã được hỗ trợ.Mục tiêu ban đầu là làm cho Wan2.1 dựa trên ComfyUI (https://github.com/kijai/ComfyUI-WanVideoWrapper, https://github.com/Wan-Video/Wan2.1) chạy được theo kiểu portable, và vừa xong tôi đã hoàn tất việc chỉnh sửa mã nguồn liên quan đến
transformers, rồi chạy thử bằng zimport thì thấy hoạt động rất tốt.Cảm ơn bạn đã sử dụng.
https://github.com/waveware4ai/zimport