Skip to content

Commit

Permalink
[Build][202111] Fix the PyYang python package installation issue (#15890
Browse files Browse the repository at this point in the history
) (#15905)

* [Build] Fix the PyYang python package installation issue (#15890)

Why I did it
Fix the armhf build failure.
How to reproduce the issue:

docker run -it debain:bullseye bash
apt-get update && apt-get install -y python3-pip
pip3 install PyYAML==5.4.1
Error message:

Collecting PyYAML==5.4.1
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  ERROR: Command errored out with exit status 1:
   command: /usr/bin/python3 /tmp/tmp6xabslgb_in_process.py get_requires_for_build_wheel /tmp/tmp_er01ztl
....
      raise AttributeError(attr)
  AttributeError: cython_sources
  ----------------------------------------
WARNING: Discarding https://files.pythonhosted.org/packages/a0/a4/d63f2d7597e1a4b55aa3b4d6c5b029991d3b824b5bd331af8d4ab1ed687d/PyYAML-5.4.1.tar.gz#sha256=607774cbba28732bfa802b54baa7484215f530991055bb562efbed5b2f20a45e (from https://pypi.org/simple/pyyaml/) (requires-python:>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*). Command errored out with exit status 1: /usr/bin/python3 /tmp/tmp6xabslgb_in_process.py get_requires_for_build_wheel /tmp/tmp_er01ztl Check the logs for full command output.
ERROR: Could not find a version that satisfies the requirement PyYAML==5.4.1
ERROR: No matching distribution found for PyYAML==5.4.1
root@fa2fa92edcfd:/#
But if adding the option --no-build-isolation, then it is good, see fix.

install "PyYAML==5.4.1" --no-build-isolation
The same error can be found in the multiple builds.

Work item tracking
Microsoft ADO (number only): 24567457

How I did it
Add a build option --no-build-isolation.

* Fix docker-platform-monitor python2 issue

* Fix wheel dependency issue
  • Loading branch information
xumia authored Jul 22, 2023
1 parent 3f50123 commit 8fd9ce7
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 3 deletions.
3 changes: 3 additions & 0 deletions build_debian.sh
Original file line number Diff line number Diff line change
Expand Up @@ -470,6 +470,9 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docke
# Install scapy
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'scapy==2.4.4'

# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'PyYAML==5.4.1' --no-build-isolation

## Note: keep pip installed for maintainance purpose

# Install GCC, needed for building/installing some Python packages
Expand Down
4 changes: 4 additions & 0 deletions dockers/docker-config-engine-buster/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,10 @@ RUN apt-get install -y \
RUN pip3 install pyangbind==0.8.1
RUN pip3 uninstall -y enum34

# Fix armhf build failure
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
RUN pip3 install PyYAML==5.4.1 --no-build-isolation

{% if docker_config_engine_buster_debs.strip() %}
# Copy locally-built Debian package dependencies
{{ copy_files("debs/", docker_config_engine_buster_debs.split(' '), "/debs/") }}
Expand Down
5 changes: 5 additions & 0 deletions dockers/docker-platform-monitor/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,11 @@ RUN pip3 install grpcio==1.39.0 \
RUN pip2 install thrift==0.13.0
RUN pip3 install thrift==0.13.0
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
# The the PyYAML for python3 has already installed in the base image docker-config-engine
RUN pip2 install wheel==0.37.1
RUN pip2 install PyYAML==5.4.1 --no-build-isolation
{% if docker_platform_monitor_debs.strip() -%}
# Copy locally-built Debian package dependencies
{{ copy_files("debs/", docker_platform_monitor_debs.split(' '), "/debs/") }}
Expand Down
3 changes: 2 additions & 1 deletion sonic-slave-bullseye/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -418,7 +418,8 @@ RUN pip3 uninstall -y enum34
RUN pip3 install j2cli==0.3.10

# For sonic-mgmt-framework
RUN pip3 install "PyYAML==5.4.1"
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
RUN pip3 install "PyYAML==5.4.1" --no-build-isolation
RUN pip3 install "lxml==4.6.2"

# For sonic-platform-common testing
Expand Down
5 changes: 3 additions & 2 deletions sonic-slave-buster/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -446,8 +446,9 @@ RUN pip3 install MarkupSafe==2.0.1
RUN pip3 install Jinja2==3.0.3
# For sonic-mgmt-framework
RUN pip2 install "PyYAML==5.4.1"
RUN pip3 install "PyYAML==5.4.1"
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
RUN pip2 install "PyYAML==5.4.1" --no-build-isolation
RUN pip3 install "PyYAML==5.4.1" --no-build-isolation
RUN pip2 install "lxml==4.6.5"
RUN pip3 install "lxml==4.6.5"
Expand Down

0 comments on commit 8fd9ce7

Please sign in to comment.