moreover setuptools 59.6.0 is the last one to work on python 3.6 so we will have to take into account different behaviors (depending on platform + python version) just skimming trough the list i see a lot of changes after 59.6.0 like:
- #2896: Setuptools once again makes its local copy of distutils the default. To override, set SETUPTOOLS_USE_DISTUTILS=stdlib.
@adriansev just to follow up on your good point, while this is correct (for installs from PyPI only — CMake builds from source are fine with any version of setuptools
) this isn't so bad in terms of (more temporary) fixes.
If you simply just do
SETUPTOOLS_USE_DISTUTILS=stdlib python3 -m pip install --verbose 'xrootd==5.4.2'
then this will work right out of the box on Ubuntu for setuptools>60.0.0
. So not bad for a temporary workaround
Here's a Dockerfile showing that working without any LD_LIBRARY_PATH
manipulation and (to really show that this would work for your current methods) even using pip install --user
with no virtual environment.
ARG BASE_IMAGE=ubuntu:20.04
FROM ${BASE_IMAGE} as base
SHELL [ "/bin/bash", "-c" ]
ENV PATH=/usr/local/venv/bin:"${PATH}"
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
g++ \
git \
cmake \
uuid-dev \
dpkg-dev \
libssl-dev \
libx11-dev \
libxml2-dev \
libkrb5-dev \
libgsl0-dev \
pkg-config \
tree \
python3 \
python3-pip \
python3-venv \
python3-dev && \
apt-get autoclean -y && \
python3 -m pip --no-cache-dir install --upgrade pip setuptools wheel && \
python3 -m pip list
WORKDIR /
# Show --user even though I don't recommend it just to show it works
RUN python3 -m pip --no-cache-dir install --user --upgrade pip 'setuptools>60.0.0' wheel && \
SETUPTOOLS_USE_DISTUTILS=stdlib python3 -m pip install --user --verbose 'xrootd==5.4.2' && \
python3 -m pip list
RUN python3 -m pip list && \
python3 -m pip show xrootd && \
python3 -c 'import XRootD; print(XRootD)' && \
python3 -c 'import pyxrootd; print(pyxrootd)' && \
python3 -c 'from XRootD import client; print(client.FileSystem("root://someserver:1094"))'
WORKDIR /
CMD ["/bin/bash"]
docker build . -f Dockerfile -t xrootd/xrootd:issue-1668-setuptools-60-plus
$ docker run --rm -ti xrootd/xrootd:issue-1668-setuptools-60-plus
root@debb0c80d455:/# python3 -m pip show xrootd
Name: xrootd
Version: 5.4.2-
Summary:
Home-page:
Author:
Author-email:
License:
Location: /root/.local/lib/python3.8/site-packages
Requires:
Required-by:
root@debb0c80d455:/# ls -lhtra /root/.local/lib/python3.8/site-packages
total 20K
drwxr-xr-x 3 root root 4.0K Apr 7 06:02 ..
drwxr-xr-x 2 root root 4.0K Apr 7 06:03 xrootd-5.4.2_.dist-info
drwxr-xr-x 6 root root 4.0K Apr 7 06:03 pyxrootd
drwxr-xr-x 4 root root 4.0K Apr 7 06:03 XRootD
drwx------ 5 root root 4.0K Apr 7 06:03 .
root@debb0c80d455:/#
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
Use REPLY-ALL to reply to list
To unsubscribe from the XROOTD-DEV list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=XROOTD-DEV&A=1