ubuntu version of pip installs package_data to purelib

29 Views Asked by At

I am trying to understand why a wheel created by Python 3.10 on Ubuntu 22.04 is placing my package_data into a purelib directory while Anaconda (python 3.12) and manylinux2014 (python 3.11 is not).

My setup.py:

from setuptools import setup, dist
import os
import re

class BinaryDistribution(dist.Distribution):
    """Distribution which always forces a binary package with platform name"""
    def has_ext_modules(self):
        return True

setup(
        packages=['pyfoo',],
        package_data={
            'pyfoo' : ['./fooJSON', './fooJSON.exe'],
        },
        distclass=BinaryDistribution,
    )

where fooJSON is a binary executable. After running:

pip wheel .

On Anaconda and Manylinux 2_28 python it gets placed in the wheel as:

pyfoo/fooJSON

where on Ubuntu it is placed as:

pyfoo-0.0.2.data/purelib/pyfoo/fooJSON

What is the proper way to indicate package_data is not purelib? Is Ubuntu an outlier?

Anaconda: pip 23.3.1 Ubuntu 22.04: pip 22.0.2

0

There are 0 best solutions below