← Back to issue list

Two python parts in the same snapcraft.yaml result in not installing the python correctly

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1617907
Type
issue
State
open
Author
~liu-xiao-guo
Labels
—
Created
Updated
Closed
—

Current evaluation

Snapcraft 2.14 fails when multiple Python parts stage conflicting interpreter files. Similarity to resolved bug #1531570 was disputed, and the old report remains unverified.

Suggested action: needs triage

Reason: The report provides a recipe, collision output, and Snapcraft 2.14 version, but the only maintainer follow-up asked whether it matched bug #1531570; the author said that report's workaround was insufficient. With no labels or confirming resolution reference, it should be retested against snapcraft#119 and the current Python plugin before closure.

Evaluated by: mr-cal-bot

Impact: 43 Quick Win: 10 Complexity: 58 Confidence: 78 Actionability: 55

Issue body

I have a snapcraft.yaml file like: name: sensortag version: "1.0" summary: SensorTag Python Bluetooth LE implementation description: API and command line tools for Python Bluetooth Low Energy access confinement: devmode apps: sensortag: command: usr/bin/sensortag sensordata: command: usr/bin/sensordata blescan: command: usr/bin/blescan # mosquito server mosquitto: command: usr/sbin/mosquitto -c $SNAP/mosquitto.conf daemon: simple plugs: [network, network-bind] # mosquitto subscriber subscribe: command: bin/subscribe plugs: [network, network-bind] parts: bluepy: plugin: python3 source: https://github.com/liu-xiao-guo/bluepy source-type: git build-packages: [libglib2.0-dev] # snap: # - -usr/bin mosquitto: plugin: copy stage-packages: [mosquitto] files: mosquitto.conf: mosquitto.conf mqtt-client: plugin: copy files: subscribe.py: bin/subscribe after: [mqtt-paho/python3] In this project, there are two python3 parts: - mqtt-client - bluepy When I try to build the project, and I get the following error: Writing /home/liuxg/snappy/desktop/sensortag/parts/mqtt-paho⧸python3/install/home/liuxg/snappy/desktop/sensortag/parts/mqtt-paho⧸python3/install/usr/lib/python3/dist-packages/paho_mqtt-1.1.egg-info Parts 'mqtt-paho/python3' and 'bluepy' have the following file paths in common which have different contents: usr/bin/2to3-3.5 usr/bin/easy_install3 usr/bin/py3clean usr/bin/py3compile usr/bin/pydoc3.5 usr/lib/python3.5/base64.py usr/lib/python3.5/cProfile.py usr/lib/python3.5/cgi.py usr/lib/python3.5/config-3.5m-x86_64-linux-gnu/python-config.py usr/lib/python3.5/distutils/command/build_scripts.py usr/lib/python3.5/encodings/rot_13.py usr/lib/python3.5/idlelib/EditorWindow.py usr/lib/python3.5/idlelib/PyShell.py usr/lib/python3.5/keyword.py usr/lib/python3.5/lib2to3/pgen2/token.py usr/lib/python3.5/pdb.py usr/lib/python3.5/platform.py usr/lib/python3.5/profile.py usr/lib/python3.5/pydoc.py usr/lib/python3.5/quopri.py usr/lib/python3.5/smtpd.py usr/lib/python3.5/smtplib.py usr/lib/python3.5/symbol.py usr/lib/python3.5/tabnanny.py usr/lib/python3.5/tarfile.py usr/lib/python3.5/test/pystone.py usr/lib/python3.5/test/regrtest.py usr/lib/python3.5/timeit.py usr/lib/python3.5/trace.py usr/lib/python3.5/uu.py usr/lib/python3.5/webbrowser.py usr/lib/python3/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/distlib/scripts.py usr/lib/python3/dist-packages/pip-8.1.2-py3.5.egg/pip/_vendor/distlib/wheel.py usr/lib/python3/dist-packages/pip-8.1.2-py3.5.egg/pip/wheel.py usr/lib/python3/dist-packages/setuptools/command/easy_install.py usr/share/dh-python/dh_pypy usr/share/dh-python/dh_python2 usr/share/dh-python/dh_python3 usr/share/dh-python/dhpython/_defaults.py usr/share/dh-python/dhpython/interpreter.py usr/share/dh-python/pybuild usr/share/python3/debpython/interpreter.p It can be found at http://paste.ubuntu.com/23106210/ Basically, I need to find a way to avoid the conflicts between the two parts since they both have the same common component: python liuxg@liuxg:~/snappy/desktop/sensortag$ snapcraft --version 2.14 Thanks!

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 43
Quick Win: 10
Complexity: 58
Confidence: 78
Actionability: 55
needs triage Snapcraft 2.14 fails when multiple Python parts stage conflicting interpreter files. Similarity to resolved bug #1531570 was disputed, and the old report remains unverified.
stealth/space-bunny-alpha
Impact: 48
Quick Win: 28
Complexity: 30
Confidence: 87
Actionability: 82
close resolved A 2016 Snapcraft 2.14 report describes overlapping Python 3.5 files from separate parts; the legacy issue was fixed and the modern venv-based plugin avoids this behavior.
stealth/space-bunny-alpha
Impact: 45
Quick Win: 15
Complexity: 48
Confidence: 88
Actionability: 62
close stale Legacy Snapcraft 2.14 builds fail when multiple Python 3 parts stage differing system files; the obsolete python3 plugin has since been replaced by the unified Python plugin.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 19
Complexity: 20
Confidence: 90
Actionability: 80
close resolved Issue about python3 plugin conflicts when multiple parts use it, from snapcraft 2.14. Resolved by removing python3 plugin in favor of unified python plugin with base support.
qwen/qwen3.8-27b
Impact: 20
Quick Win: 10
Staleness: 95
Complexity: 50
Confidence: 65
Support Request: 50
close stale Stage-time file conflict when two python3 parts share the same interpreter in one snapcraft.yaml (snapcraft 2.14, ~2019). No labels, 0 comments, no maintainer interaction in ~10 years; the old python plugin was later rewritten, so the conflict no longer applies.
qwen/qwen3.6-35b-a3b
Staleness: 98
Complexity: 25
Confidence: 92
Support Request: 85
close stale Build fails due to path conflicts when using multiple python3 parts in snapcraft v2.14. User seeks a way to avoid shared Python file conflicts between parts.
qwen/qwen3.6-35b-a3b
Staleness: 98
Complexity: 15
Confidence: 90
Support Request: 85
close stale Build fails due to file conflicts between two python3 parts in Snapcraft 2.14. Issue is nearly 10 years old and references an obsolete tool version no longer supported.
qwen3.6-35b-a3b-mtp-q6
Staleness: 98
Complexity: 20
Confidence: 90
Support Request: 60
close stale Snapcraft build fails due to file path conflicts between two python3 parts. No maintainer response or labels; issue is nearly 10 years old and uses obsolete snapcraft 2.14.

Update history

Date Change
created

Related work

  • Related To: snapcraft (launchpad)#1531570 (confidence 99%)

    A maintainer explicitly asked whether the reports were the same. That report was resolved by snapcraft#119 (a06a75e70), but the author said its workaround did not work here.

Related issues

Issue Project State Summary Similarity
#1663739 it's not possible to have two python parts snapcraft (launchpad) closed Fixed by merging snapcraft#1138 in commit 73604a1f0, excluding Python RECORD files so multiple Python parts no longer conflict during staging.
78%
#1502105 when two python3 parts are used the pycs give a conflict snapcraft (launchpad) closed Overlapping Python 3 .pyc staging conflicts were fixed in ubuntu-core/snapcraft#50 using Python-plugin snap_fileset filtering; regression coverage was proposed in #109.
72%
#1613898 Python easy_install fails when second of two python parts builds snapcraft (launchpad) closed Closed as obsolete after the Python plugin's installation strategy changed; multiple Python parts gained support in canonical/snapcraft#3451 (932288fed).
71%