Skip to content

Commit 8fd9ce7

Browse files
authored
[Build][202111] Fix the PyYang python package installation issue (#15890) (#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
1 parent 3f50123 commit 8fd9ce7

File tree

5 files changed

+17
-3
lines changed

5 files changed

+17
-3
lines changed

build_debian.sh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -470,6 +470,9 @@ sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'docke
470470
# Install scapy
471471
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'scapy==2.4.4'
472472

473+
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
474+
sudo https_proxy=$https_proxy LANG=C chroot $FILESYSTEM_ROOT pip3 install 'PyYAML==5.4.1' --no-build-isolation
475+
473476
## Note: keep pip installed for maintainance purpose
474477

475478
# Install GCC, needed for building/installing some Python packages

dockers/docker-config-engine-buster/Dockerfile.j2

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@ RUN apt-get install -y \
2323
RUN pip3 install pyangbind==0.8.1
2424
RUN pip3 uninstall -y enum34
2525

26+
# Fix armhf build failure
27+
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
28+
RUN pip3 install PyYAML==5.4.1 --no-build-isolation
29+
2630
{% if docker_config_engine_buster_debs.strip() %}
2731
# Copy locally-built Debian package dependencies
2832
{{ copy_files("debs/", docker_config_engine_buster_debs.split(' '), "/debs/") }}

dockers/docker-platform-monitor/Dockerfile.j2

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,11 @@ RUN pip3 install grpcio==1.39.0 \
5353
RUN pip2 install thrift==0.13.0
5454
RUN pip3 install thrift==0.13.0
5555
56+
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
57+
# The the PyYAML for python3 has already installed in the base image docker-config-engine
58+
RUN pip2 install wheel==0.37.1
59+
RUN pip2 install PyYAML==5.4.1 --no-build-isolation
60+
5661
{% if docker_platform_monitor_debs.strip() -%}
5762
# Copy locally-built Debian package dependencies
5863
{{ copy_files("debs/", docker_platform_monitor_debs.split(' '), "/debs/") }}

sonic-slave-bullseye/Dockerfile.j2

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,8 @@ RUN pip3 uninstall -y enum34
418418
RUN pip3 install j2cli==0.3.10
419419

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

424425
# For sonic-platform-common testing

sonic-slave-buster/Dockerfile.j2

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,8 +446,9 @@ RUN pip3 install MarkupSafe==2.0.1
446446
RUN pip3 install Jinja2==3.0.3
447447
448448
# For sonic-mgmt-framework
449-
RUN pip2 install "PyYAML==5.4.1"
450-
RUN pip3 install "PyYAML==5.4.1"
449+
# The option --no-build-isolation can be removed when upgrading PyYAML to 6.0.1
450+
RUN pip2 install "PyYAML==5.4.1" --no-build-isolation
451+
RUN pip3 install "PyYAML==5.4.1" --no-build-isolation
451452
RUN pip2 install "lxml==4.6.5"
452453
RUN pip3 install "lxml==4.6.5"
453454

0 commit comments

Comments
 (0)