blue-city-97042
09/25/2023, 2:45 PMfresh-cat-90827
09/25/2023, 3:48 PMblue-city-97042
09/25/2023, 3:53 PMenough-analyst-54434
09/25/2023, 6:49 PMThere are limitations...
@blue-city-97042 this should not be the case with modern Pants / Pex / Pip. Can you link to a thread or issues that documents the issue you're seeing?
blue-city-97042
09/25/2023, 7:18 PMblue-city-97042
09/25/2023, 7:19 PMenough-analyst-54434
09/25/2023, 9:44 PMblue-city-97042
09/26/2023, 3:01 PMwheel>0.32.0,<0.33.0
numpy<2
numpy<1.25.0; python >=3.7,<3.9
cymem>=2.0.2,<2.1.0
preshed>=2.0.1,<2.1.0
murmurhash>=0.28.0,<1.1.0
thinc>=7.0.8,<7.1.0
Requirements.txt
dkpro-cassis==0.2.1
spacy==2.1.9
numpy>=1.11.0,<1.25.0
joblib<1.0.0
scikit-learn==0.22.2.post1
setuptools>=41.0.0
Where this fails is when the setup.py is being called for scikit-learn. It's expecting the numpy package to be installed. Unfortunately it's not a part of the build requirements, so unless you do a custom build with it added as a build dependency, it'll fail.blue-city-97042
09/26/2023, 3:02 PMblue-city-97042
09/26/2023, 3:03 PMenough-analyst-54434
09/26/2023, 8:01 PMnumpy<1.25.0; python >=3.7,<3.9
environment marker implies at least >=3.7,<3.9
but it would be good to know what is actually written down in your pants.toml
config.blue-city-97042
09/26/2023, 8:02 PMenough-analyst-54434
09/26/2023, 8:02 PMenough-analyst-54434
09/26/2023, 8:06 PMblue-city-97042
09/26/2023, 8:07 PMenough-analyst-54434
09/26/2023, 8:07 PMenough-analyst-54434
09/26/2023, 8:11 PMblue-city-97042
09/26/2023, 8:12 PMenough-analyst-54434
09/27/2023, 4:01 PMsetup_requires=['numpy>=1.15.0'],
+ preshed (2.0.1): setup_requires=['wheel>=0.32.0,<0.33.0'],
+ spacy (2.1.9):
[build-system]
requires = ["setuptools",
"wheel>0.32.0,<0.33.0",
"Cython",
"cymem>=2.0.2,<2.1.0",
"preshed>=2.0.1,<2.1.0",
"murmurhash>=0.28.0,<1.1.0",
"thinc>=7.0.8,<7.1.0",
]
build-backend = "setuptools.build_meta"
+ thinc (7.0.8): setup_requires=["numpy>=1.7.0"],
They all have build requirements that must 1st be installed to even produce metadata (3 via old-school deprecated setup_requires
, 1 via PEP-518). Of the 4, 3 are problematic (preshed works out fine since wheel is available as a universal wheel). The 3 problematic need at least a numpy wheel as a build requirement; so if there is no numpy available for the locking machine as a pre-built wheel, that build requirement forces numpy to be built.
I think it's clear, but in case not - the issue here is build requirements, not install (runtime) requirements. You have 3 packages that need a pre-built numpy (and more), to even themselves build.blue-city-97042
09/27/2023, 4:03 PMenough-analyst-54434
09/27/2023, 4:05 PMenough-analyst-54434
09/27/2023, 4:06 PMblue-city-97042
09/27/2023, 4:07 PMblue-city-97042
09/27/2023, 4:07 PMenough-analyst-54434
09/27/2023, 4:07 PMblue-city-97042
09/27/2023, 4:07 PMblue-city-97042
09/27/2023, 4:07 PMenough-analyst-54434
09/27/2023, 4:08 PMenough-analyst-54434
09/27/2023, 4:11 PMtime pants --no-pantsd --help
to get an idea of the noop startup time of Pants with no pants daemon).blue-city-97042
09/27/2023, 4:11 PMblue-city-97042
09/27/2023, 4:12 PMenough-analyst-54434
09/27/2023, 4:13 PMenough-analyst-54434
09/27/2023, 4:21 PMenough-analyst-54434
09/27/2023, 4:23 PMpip download
to create the lock. When it gets an sdist it does not build the wheel, it uses the PEP-517 prepare_metadata_for_build_wheel
optional API to get at it from the sdists. Only if the build backend doesn't implement that method (which setuptools does), does it really build a wheel. But the issue here is the build_requirements themselves need to be built for real. That's what sinks this. I don't see any code in johnnydep that works around that either.enough-analyst-54434
09/27/2023, 4:28 PMblue-city-97042
09/27/2023, 4:51 PM