[Bug 2055194] [NEW] Invalid version: 'None' when re-installing/upgrading python-apt using pip when wheel module installed
Philip Roche
2055194 at bugs.launchpad.net
Tue Feb 27 16:28:38 UTC 2024
Public bug reported:
[ Impact ]
* It is not possible to upgrade or re-install python-apt using pip from
the git+ssh://git.launchpad.net/ubuntu/+source/python-apt git repo if
already installed and if wheel installed too.
* On initial install it also is assigned version `0.0.0` which is
incorrect
* This applies to the Mantic, Jammy and earlier versions. It has been
fixed in Noble
[ Test Plan ]
* Attempt re-install of python-apt
[ Where problems could occur ]
* Being unable to install python-apt
* Being unable to upgrade python-apt
* Being unable to re-install python-apt
[ Other Info ]
* This been resolved upstream @ https://salsa.debian.org/apt-
team/python-apt/-/commit/765772fad2d3611b952b6ad416c6b765739a902a and in
`2.4.y` branch @ https://salsa.debian.org/apt-team/python-
apt/-/tree/2.4.y?ref_type=heads
* You can workaround this too by setting environment variable
`DEBVER=2.4.11`
* Reproducer
```
❯ python3 -m venv venv
❯ source venv/bin/activate
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
setuptools 68.1.2
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-t7t8vnsu
Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-t7t8vnsu
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
Switched to a new branch 'ubuntu/jammy-updates'
branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: python-apt
Building wheel for python-apt (pyproject.toml) ... done
Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808770 sha256=472ff7d9bcdad50912dc42499d68bc5e958b9843c355c157ccf920021728c205
Stored in directory: /tmp/pip-ephem-wheel-cache-nyc3gs5x/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
Successfully built python-apt
Installing collected packages: python-apt
Successfully installed python-apt-0.0.0
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
python-apt 0.0.0
setuptools 68.1.2
# install wheel
❯ python3 -m pip install wheel
Collecting wheel
Obtaining dependency information for wheel from https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl.metadata
Using cached wheel-0.42.0-py3-none-any.whl.metadata (2.2 kB)
Using cached wheel-0.42.0-py3-none-any.whl (65 kB)
Installing collected packages: wheel
Successfully installed wheel-0.42.0
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
python-apt 0.0.0
setuptools 68.1.2
wheel 0.42.0
# Now try re-install
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-lk856i6s
Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-lk856i6s
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
Switched to a new branch 'ubuntu/jammy-updates'
branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [34 lines of output]
Traceback (most recent call last):
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 59, in safe_version
return str(packaging.version.Version(v))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
raise InvalidVersion(f"Invalid version: '{version}'")
setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
During handling of the above exception, another exception
occurred:
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/tmp/pip-req-build-lk856i6s/setup.py", line 100, in <module>
setup(name="python-apt",
File "/tmp/venv/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 147, in setup
_setup_distribution = dist = klass(attrs)
^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 480, in __init__
self.patch_missing_pkg_info(attrs)
File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 469, in patch_missing_pkg_info
dist._version = _normalization.safe_version(str(attrs['version']))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 62, in safe_version
return str(packaging.version.Version(attempt))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
raise InvalidVersion(f"Invalid version: '{version}'")
setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
W: [python3.1] DistUtilsExtra import error.
W: [python3.1] Sphinx import error.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
# Now install the upstream version with the fix
❯ python3 -m pip install --upgrade git+https://salsa.debian.org/apt-team/python-apt.git@2.4.y
Collecting git+https://salsa.debian.org/apt-team/python-apt.git@2.4.y
Cloning https://salsa.debian.org/apt-team/python-apt.git (to revision 2.4.y) to ./pip-req-build-3685qq5l
Running command git clone --filter=blob:none --quiet https://salsa.debian.org/apt-team/python-apt.git /tmp/pip-req-build-3685qq5l
Running command git checkout -b 2.4.y --track origin/2.4.y
Switched to a new branch '2.4.y'
branch '2.4.y' set up to track 'origin/2.4.y'.
Resolved https://salsa.debian.org/apt-team/python-apt.git to commit 765772fad2d3611b952b6ad416c6b765739a902a
Preparing metadata (setup.py) ... done
Building wheels for collected packages: python-apt
Building wheel for python-apt (setup.py) ... done
Created wheel for python-apt: filename=python_apt-2.4.0-cp311-cp311-linux_x86_64.whl size=1808869 sha256=88a68a971f2906fb164d899e3a656f96c13b411e1c4817b8124570c8d7d8f8b6
Stored in directory: /tmp/pip-ephem-wheel-cache-s8hfqwli/wheels/be/db/74/811f602d86304cd1d663bb8d2fac0576098fb5c1f1fcc574f5
Successfully built python-apt
Installing collected packages: python-apt
Attempting uninstall: python-apt
Found existing installation: python-apt 0.0.0
Uninstalling python-apt-0.0.0:
Successfully uninstalled python-apt-0.0.0
Successfully installed python-apt-2.4.0
# Now remove wheel
❯ python3 -m pip uninstall -y wheel
Found existing installation: wheel 0.42.0
Uninstalling wheel-0.42.0:
Successfully uninstalled wheel-0.42.0
# Try re-install again without wheel present in virtual env
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-x6s9fyhw
Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-x6s9fyhw
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
Switched to a new branch 'ubuntu/jammy-updates'
branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: python-apt
Building wheel for python-apt (pyproject.toml) ... done
Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808761 sha256=930dc876f56792a798aabcee00ca2760a6ea0b1bffe47e5d9edfa1fa03ed4c0e
Stored in directory: /tmp/pip-ephem-wheel-cache-98tkauq_/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
Successfully built python-apt
Installing collected packages: python-apt
Attempting uninstall: python-apt
Found existing installation: python-apt 2.4.0
Uninstalling python-apt-2.4.0:
Successfully uninstalled python-apt-2.4.0
Successfully installed python-apt-0.0.0
```
** Affects: python-apt (Ubuntu)
Importance: Undecided
Status: New
** Affects: python-apt (Ubuntu Xenial)
Importance: Undecided
Status: New
** Affects: python-apt (Ubuntu Bionic)
Importance: Undecided
Status: New
** Affects: python-apt (Ubuntu Focal)
Importance: Undecided
Status: New
** Affects: python-apt (Ubuntu Jammy)
Importance: Undecided
Status: New
** Affects: python-apt (Ubuntu Mantic)
Importance: Undecided
Status: New
** Also affects: python-apt (Ubuntu Mantic)
Importance: Undecided
Status: New
** Also affects: python-apt (Ubuntu Jammy)
Importance: Undecided
Status: New
** Also affects: python-apt (Ubuntu Focal)
Importance: Undecided
Status: New
** Also affects: python-apt (Ubuntu Xenial)
Importance: Undecided
Status: New
** Also affects: python-apt (Ubuntu Bionic)
Importance: Undecided
Status: New
** Description changed:
[ Impact ]
- * It is not possible to upgrade or re-install python-apt using pip from
+ * It is not possible to upgrade or re-install python-apt using pip from
the git+ssh://git.launchpad.net/ubuntu/+source/python-apt git repo if
already installed and if wheel installed too.
- * On initial install it also is assigned version `0.0.0` which is
+ * On initial install it also is assigned version `0.0.0` which is
incorrect
- * This applies to the Mantic, Jammy and earlier versions. It has been
+ * This applies to the Mantic, Jammy and earlier versions. It has been
fixed in Noble
[ Test Plan ]
- * Attempt re-install of python-apt
+ * Attempt re-install of python-apt
[ Where problems could occur ]
- * Being unable to install python-apt
-
- * Being unable to upgrade python-apt
-
- * Being unable to re-install python-apt
+ * Being unable to install python-apt
+
+ * Being unable to upgrade python-apt
+
+ * Being unable to re-install python-apt
[ Other Info ]
- * This been resolved upstream @ https://salsa.debian.org/apt-team/python-apt/-/commit/765772fad2d3611b952b6ad416c6b765739a902a and in `2.4.y` branch @ https://salsa.debian.org/apt-team/python-apt/-/tree/2.4.y?ref_type=heads
-
- * Reproducer
+ * This been resolved upstream @ https://salsa.debian.org/apt-
+ team/python-apt/-/commit/765772fad2d3611b952b6ad416c6b765739a902a and in
+ `2.4.y` branch @ https://salsa.debian.org/apt-team/python-
+ apt/-/tree/2.4.y?ref_type=heads
+
+ * You can workaround this too by setting environment variable
+ `DEBVER=2.4.11`
+
+ * Reproducer
```
❯ python3 -m venv venv
❯ source venv/bin/activate
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
setuptools 68.1.2
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
- Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-t7t8vnsu
- Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-t7t8vnsu
- warning: filtering not recognized by server, ignoring
- warning: filtering not recognized by server, ignoring
- Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
- Switched to a new branch 'ubuntu/jammy-updates'
- branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
- Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
- Installing build dependencies ... done
- Getting requirements to build wheel ... done
- Preparing metadata (pyproject.toml) ... done
+ Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-t7t8vnsu
+ Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-t7t8vnsu
+ warning: filtering not recognized by server, ignoring
+ warning: filtering not recognized by server, ignoring
+ Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
+ Switched to a new branch 'ubuntu/jammy-updates'
+ branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
+ Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
+ Installing build dependencies ... done
+ Getting requirements to build wheel ... done
+ Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: python-apt
- Building wheel for python-apt (pyproject.toml) ... done
- Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808770 sha256=472ff7d9bcdad50912dc42499d68bc5e958b9843c355c157ccf920021728c205
- Stored in directory: /tmp/pip-ephem-wheel-cache-nyc3gs5x/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
+ Building wheel for python-apt (pyproject.toml) ... done
+ Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808770 sha256=472ff7d9bcdad50912dc42499d68bc5e958b9843c355c157ccf920021728c205
+ Stored in directory: /tmp/pip-ephem-wheel-cache-nyc3gs5x/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
Successfully built python-apt
Installing collected packages: python-apt
Successfully installed python-apt-0.0.0
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
python-apt 0.0.0
setuptools 68.1.2
# install wheel
❯ python3 -m pip install wheel
Collecting wheel
- Obtaining dependency information for wheel from https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl.metadata
- Using cached wheel-0.42.0-py3-none-any.whl.metadata (2.2 kB)
+ Obtaining dependency information for wheel from https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl.metadata
+ Using cached wheel-0.42.0-py3-none-any.whl.metadata (2.2 kB)
Using cached wheel-0.42.0-py3-none-any.whl (65 kB)
Installing collected packages: wheel
Successfully installed wheel-0.42.0
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
python-apt 0.0.0
setuptools 68.1.2
wheel 0.42.0
# Now try re-install
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
- Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-lk856i6s
- Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-lk856i6s
- warning: filtering not recognized by server, ignoring
- warning: filtering not recognized by server, ignoring
- Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
- Switched to a new branch 'ubuntu/jammy-updates'
- branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
- Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
- Preparing metadata (setup.py) ... error
- error: subprocess-exited-with-error
-
- × python setup.py egg_info did not run successfully.
- │ exit code: 1
- ╰─> [34 lines of output]
- Traceback (most recent call last):
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 59, in safe_version
- return str(packaging.version.Version(v))
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
- raise InvalidVersion(f"Invalid version: '{version}'")
- setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
-
- During handling of the above exception, another exception occurred:
-
- Traceback (most recent call last):
- File "<string>", line 2, in <module>
- File "<pip-setuptools-caller>", line 34, in <module>
- File "/tmp/pip-req-build-lk856i6s/setup.py", line 100, in <module>
- setup(name="python-apt",
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
- return distutils.core.setup(**attrs)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 147, in setup
- _setup_distribution = dist = klass(attrs)
- ^^^^^^^^^^^^
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 480, in __init__
- self.patch_missing_pkg_info(attrs)
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 469, in patch_missing_pkg_info
- dist._version = _normalization.safe_version(str(attrs['version']))
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 62, in safe_version
- return str(packaging.version.Version(attempt))
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
- raise InvalidVersion(f"Invalid version: '{version}'")
- setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
- W: [python3.1] DistUtilsExtra import error.
- W: [python3.1] Sphinx import error.
- [end of output]
-
- note: This error originates from a subprocess, and is likely not a problem with pip.
+ Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-lk856i6s
+ Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-lk856i6s
+ warning: filtering not recognized by server, ignoring
+ warning: filtering not recognized by server, ignoring
+ Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
+ Switched to a new branch 'ubuntu/jammy-updates'
+ branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
+ Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
+ Preparing metadata (setup.py) ... error
+ error: subprocess-exited-with-error
+
+ × python setup.py egg_info did not run successfully.
+ │ exit code: 1
+ ╰─> [34 lines of output]
+ Traceback (most recent call last):
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 59, in safe_version
+ return str(packaging.version.Version(v))
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
+ raise InvalidVersion(f"Invalid version: '{version}'")
+ setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
+
+ During handling of the above exception, another exception
+ occurred:
+
+ Traceback (most recent call last):
+ File "<string>", line 2, in <module>
+ File "<pip-setuptools-caller>", line 34, in <module>
+ File "/tmp/pip-req-build-lk856i6s/setup.py", line 100, in <module>
+ setup(name="python-apt",
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
+ return distutils.core.setup(**attrs)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 147, in setup
+ _setup_distribution = dist = klass(attrs)
+ ^^^^^^^^^^^^
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 480, in __init__
+ self.patch_missing_pkg_info(attrs)
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 469, in patch_missing_pkg_info
+ dist._version = _normalization.safe_version(str(attrs['version']))
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 62, in safe_version
+ return str(packaging.version.Version(attempt))
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
+ raise InvalidVersion(f"Invalid version: '{version}'")
+ setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
+ W: [python3.1] DistUtilsExtra import error.
+ W: [python3.1] Sphinx import error.
+ [end of output]
+
+ note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
# Now install the upstream version with the fix
❯ python3 -m pip install --upgrade git+https://salsa.debian.org/apt-team/python-apt.git@2.4.y
Collecting git+https://salsa.debian.org/apt-team/python-apt.git@2.4.y
- Cloning https://salsa.debian.org/apt-team/python-apt.git (to revision 2.4.y) to ./pip-req-build-3685qq5l
- Running command git clone --filter=blob:none --quiet https://salsa.debian.org/apt-team/python-apt.git /tmp/pip-req-build-3685qq5l
- Running command git checkout -b 2.4.y --track origin/2.4.y
- Switched to a new branch '2.4.y'
- branch '2.4.y' set up to track 'origin/2.4.y'.
- Resolved https://salsa.debian.org/apt-team/python-apt.git to commit 765772fad2d3611b952b6ad416c6b765739a902a
- Preparing metadata (setup.py) ... done
+ Cloning https://salsa.debian.org/apt-team/python-apt.git (to revision 2.4.y) to ./pip-req-build-3685qq5l
+ Running command git clone --filter=blob:none --quiet https://salsa.debian.org/apt-team/python-apt.git /tmp/pip-req-build-3685qq5l
+ Running command git checkout -b 2.4.y --track origin/2.4.y
+ Switched to a new branch '2.4.y'
+ branch '2.4.y' set up to track 'origin/2.4.y'.
+ Resolved https://salsa.debian.org/apt-team/python-apt.git to commit 765772fad2d3611b952b6ad416c6b765739a902a
+ Preparing metadata (setup.py) ... done
Building wheels for collected packages: python-apt
- Building wheel for python-apt (setup.py) ... done
- Created wheel for python-apt: filename=python_apt-2.4.0-cp311-cp311-linux_x86_64.whl size=1808869 sha256=88a68a971f2906fb164d899e3a656f96c13b411e1c4817b8124570c8d7d8f8b6
- Stored in directory: /tmp/pip-ephem-wheel-cache-s8hfqwli/wheels/be/db/74/811f602d86304cd1d663bb8d2fac0576098fb5c1f1fcc574f5
+ Building wheel for python-apt (setup.py) ... done
+ Created wheel for python-apt: filename=python_apt-2.4.0-cp311-cp311-linux_x86_64.whl size=1808869 sha256=88a68a971f2906fb164d899e3a656f96c13b411e1c4817b8124570c8d7d8f8b6
+ Stored in directory: /tmp/pip-ephem-wheel-cache-s8hfqwli/wheels/be/db/74/811f602d86304cd1d663bb8d2fac0576098fb5c1f1fcc574f5
Successfully built python-apt
Installing collected packages: python-apt
- Attempting uninstall: python-apt
- Found existing installation: python-apt 0.0.0
- Uninstalling python-apt-0.0.0:
- Successfully uninstalled python-apt-0.0.0
+ Attempting uninstall: python-apt
+ Found existing installation: python-apt 0.0.0
+ Uninstalling python-apt-0.0.0:
+ Successfully uninstalled python-apt-0.0.0
Successfully installed python-apt-2.4.0
# Now remove wheel
❯ python3 -m pip uninstall -y wheel
Found existing installation: wheel 0.42.0
Uninstalling wheel-0.42.0:
- Successfully uninstalled wheel-0.42.0
-
+ Successfully uninstalled wheel-0.42.0
# Try re-install again without wheel present in virtual env
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
- Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-x6s9fyhw
- Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-x6s9fyhw
- warning: filtering not recognized by server, ignoring
- warning: filtering not recognized by server, ignoring
- Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
- Switched to a new branch 'ubuntu/jammy-updates'
- branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
- Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
- Installing build dependencies ... done
- Getting requirements to build wheel ... done
- Preparing metadata (pyproject.toml) ... done
+ Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-x6s9fyhw
+ Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-x6s9fyhw
+ warning: filtering not recognized by server, ignoring
+ warning: filtering not recognized by server, ignoring
+ Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
+ Switched to a new branch 'ubuntu/jammy-updates'
+ branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
+ Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
+ Installing build dependencies ... done
+ Getting requirements to build wheel ... done
+ Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: python-apt
- Building wheel for python-apt (pyproject.toml) ... done
- Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808761 sha256=930dc876f56792a798aabcee00ca2760a6ea0b1bffe47e5d9edfa1fa03ed4c0e
- Stored in directory: /tmp/pip-ephem-wheel-cache-98tkauq_/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
+ Building wheel for python-apt (pyproject.toml) ... done
+ Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808761 sha256=930dc876f56792a798aabcee00ca2760a6ea0b1bffe47e5d9edfa1fa03ed4c0e
+ Stored in directory: /tmp/pip-ephem-wheel-cache-98tkauq_/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
Successfully built python-apt
Installing collected packages: python-apt
- Attempting uninstall: python-apt
- Found existing installation: python-apt 2.4.0
- Uninstalling python-apt-2.4.0:
- Successfully uninstalled python-apt-2.4.0
+ Attempting uninstall: python-apt
+ Found existing installation: python-apt 2.4.0
+ Uninstalling python-apt-2.4.0:
+ Successfully uninstalled python-apt-2.4.0
Successfully installed python-apt-0.0.0
```
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to python-apt in Ubuntu.
https://bugs.launchpad.net/bugs/2055194
Title:
Invalid version: 'None' when re-installing/upgrading python-apt using
pip when wheel module installed
Status in python-apt package in Ubuntu:
New
Status in python-apt source package in Xenial:
New
Status in python-apt source package in Bionic:
New
Status in python-apt source package in Focal:
New
Status in python-apt source package in Jammy:
New
Status in python-apt source package in Mantic:
New
Bug description:
[ Impact ]
* It is not possible to upgrade or re-install python-apt using pip
from the git+ssh://git.launchpad.net/ubuntu/+source/python-apt git
repo if already installed and if wheel installed too.
* On initial install it also is assigned version `0.0.0` which is
incorrect
* This applies to the Mantic, Jammy and earlier versions. It has been
fixed in Noble
[ Test Plan ]
* Attempt re-install of python-apt
[ Where problems could occur ]
* Being unable to install python-apt
* Being unable to upgrade python-apt
* Being unable to re-install python-apt
[ Other Info ]
* This been resolved upstream @ https://salsa.debian.org/apt-
team/python-apt/-/commit/765772fad2d3611b952b6ad416c6b765739a902a and
in `2.4.y` branch @ https://salsa.debian.org/apt-team/python-
apt/-/tree/2.4.y?ref_type=heads
* You can workaround this too by setting environment variable
`DEBVER=2.4.11`
* Reproducer
```
❯ python3 -m venv venv
❯ source venv/bin/activate
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
setuptools 68.1.2
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-t7t8vnsu
Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-t7t8vnsu
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
Switched to a new branch 'ubuntu/jammy-updates'
branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: python-apt
Building wheel for python-apt (pyproject.toml) ... done
Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808770 sha256=472ff7d9bcdad50912dc42499d68bc5e958b9843c355c157ccf920021728c205
Stored in directory: /tmp/pip-ephem-wheel-cache-nyc3gs5x/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
Successfully built python-apt
Installing collected packages: python-apt
Successfully installed python-apt-0.0.0
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
python-apt 0.0.0
setuptools 68.1.2
# install wheel
❯ python3 -m pip install wheel
Collecting wheel
Obtaining dependency information for wheel from https://files.pythonhosted.org/packages/c7/c3/55076fc728723ef927521abaa1955213d094933dc36d4a2008d5101e1af5/wheel-0.42.0-py3-none-any.whl.metadata
Using cached wheel-0.42.0-py3-none-any.whl.metadata (2.2 kB)
Using cached wheel-0.42.0-py3-none-any.whl (65 kB)
Installing collected packages: wheel
Successfully installed wheel-0.42.0
❯ python3 -m pip list
Package Version
---------- -------
pip 23.2
python-apt 0.0.0
setuptools 68.1.2
wheel 0.42.0
# Now try re-install
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-lk856i6s
Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-lk856i6s
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
Switched to a new branch 'ubuntu/jammy-updates'
branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [34 lines of output]
Traceback (most recent call last):
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 59, in safe_version
return str(packaging.version.Version(v))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
raise InvalidVersion(f"Invalid version: '{version}'")
setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
During handling of the above exception, another exception
occurred:
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/tmp/pip-req-build-lk856i6s/setup.py", line 100, in <module>
setup(name="python-apt",
File "/tmp/venv/lib/python3.11/site-packages/setuptools/__init__.py", line 107, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 147, in setup
_setup_distribution = dist = klass(attrs)
^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 480, in __init__
self.patch_missing_pkg_info(attrs)
File "/tmp/venv/lib/python3.11/site-packages/setuptools/dist.py", line 469, in patch_missing_pkg_info
dist._version = _normalization.safe_version(str(attrs['version']))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_normalization.py", line 62, in safe_version
return str(packaging.version.Version(attempt))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/tmp/venv/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py", line 198, in __init__
raise InvalidVersion(f"Invalid version: '{version}'")
setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'None'
W: [python3.1] DistUtilsExtra import error.
W: [python3.1] Sphinx import error.
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
╰─> See above for output.
note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
# Now install the upstream version with the fix
❯ python3 -m pip install --upgrade git+https://salsa.debian.org/apt-team/python-apt.git@2.4.y
Collecting git+https://salsa.debian.org/apt-team/python-apt.git@2.4.y
Cloning https://salsa.debian.org/apt-team/python-apt.git (to revision 2.4.y) to ./pip-req-build-3685qq5l
Running command git clone --filter=blob:none --quiet https://salsa.debian.org/apt-team/python-apt.git /tmp/pip-req-build-3685qq5l
Running command git checkout -b 2.4.y --track origin/2.4.y
Switched to a new branch '2.4.y'
branch '2.4.y' set up to track 'origin/2.4.y'.
Resolved https://salsa.debian.org/apt-team/python-apt.git to commit 765772fad2d3611b952b6ad416c6b765739a902a
Preparing metadata (setup.py) ... done
Building wheels for collected packages: python-apt
Building wheel for python-apt (setup.py) ... done
Created wheel for python-apt: filename=python_apt-2.4.0-cp311-cp311-linux_x86_64.whl size=1808869 sha256=88a68a971f2906fb164d899e3a656f96c13b411e1c4817b8124570c8d7d8f8b6
Stored in directory: /tmp/pip-ephem-wheel-cache-s8hfqwli/wheels/be/db/74/811f602d86304cd1d663bb8d2fac0576098fb5c1f1fcc574f5
Successfully built python-apt
Installing collected packages: python-apt
Attempting uninstall: python-apt
Found existing installation: python-apt 0.0.0
Uninstalling python-apt-0.0.0:
Successfully uninstalled python-apt-0.0.0
Successfully installed python-apt-2.4.0
# Now remove wheel
❯ python3 -m pip uninstall -y wheel
Found existing installation: wheel 0.42.0
Uninstalling wheel-0.42.0:
Successfully uninstalled wheel-0.42.0
# Try re-install again without wheel present in virtual env
❯ python3 -m pip install --upgrade git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Collecting git+ssh://git.launchpad.net/ubuntu/+source/python-apt@ubuntu/jammy-updates
Cloning ssh://git.launchpad.net/ubuntu/+source/python-apt (to revision ubuntu/jammy-updates) to ./pip-req-build-x6s9fyhw
Running command git clone --filter=blob:none --quiet ssh://git.launchpad.net/ubuntu/+source/python-apt /tmp/pip-req-build-x6s9fyhw
warning: filtering not recognized by server, ignoring
warning: filtering not recognized by server, ignoring
Running command git checkout -b ubuntu/jammy-updates --track origin/ubuntu/jammy-updates
Switched to a new branch 'ubuntu/jammy-updates'
branch 'ubuntu/jammy-updates' set up to track 'origin/ubuntu/jammy-updates'.
Resolved ssh://git.launchpad.net/ubuntu/+source/python-apt to commit f043e6bd4d2842d6693d48e0c68c7a63bd3be9ac
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: python-apt
Building wheel for python-apt (pyproject.toml) ... done
Created wheel for python-apt: filename=python_apt-0.0.0-cp311-cp311-linux_x86_64.whl size=1808761 sha256=930dc876f56792a798aabcee00ca2760a6ea0b1bffe47e5d9edfa1fa03ed4c0e
Stored in directory: /tmp/pip-ephem-wheel-cache-98tkauq_/wheels/c7/db/d7/21a72eaa5719ab3ab1ca242d5d0e08aca4aa67eaddb3c9b8fa
Successfully built python-apt
Installing collected packages: python-apt
Attempting uninstall: python-apt
Found existing installation: python-apt 2.4.0
Uninstalling python-apt-2.4.0:
Successfully uninstalled python-apt-2.4.0
Successfully installed python-apt-0.0.0
```
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/python-apt/+bug/2055194/+subscriptions
More information about the foundations-bugs
mailing list