Skip to content

Experiment on complex shared objects dependencies in wheels

Notifications You must be signed in to change notification settings

amol-/wheeldeps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Experiment on complex shared objects dependencies

This tries to simulate a complex dependency of native code with wheels depending on other wheels that contain cython libraries depending on shared objects.

The purpose of this experiment is to verify how shared objects from multiple different libraries can be made available to other weels without copying them into every wheel.

Hierarchy of dependencies

parent
  |
  | ---- libtwo.whl
  |        |
  |        | --- libbar.so
  |        |        |
  |        |         ---- libfoo.so
  |        | ---- libone.whl
  |                |
  |                 ---- libfoo.so
  | ---- libone.whl     
             |
              ---- libfoo.so    

Usage

Use try.sh or you can manually do

  1. Run cd libfoo; make
  2. Run cd libbar; make
  3. Run cd pylib1; ./makewheel.sh
  4. Run cd pylib2; ./makewheel.sh
  5. Run consolidatewheels pylib1/wheelhouse/*.whl pylib2/wheelhouse/*.whl --dest=./patchedwheels
  6. Create a virtual environment and activate it (python -mvenv venv; source ./venv/bin/activate)
  7. Run pip install patchedwheels/*.whl --force-reinstall
  8. Run cd pyparent; python test.py

About

Experiment on complex shared objects dependencies in wheels

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published