Commit 14f5b96
committed
Migrate away from the deprecated
In the newly released Python 3.12, the `pkgutil.find_loader()` API
was deprecated:
https://docs.python.org/3.12/library/pkgutil.html#pkgutil.find_loader
It's been replaced by `importlib.util.find_spec` which is supported
since Python 3.4 (which is fine for us to use now, but wasn't an option
back when `is_module_available()` was written, since at that time the
buildpack still had to support Python 2.7):
https://docs.python.org/3.12/library/importlib.html#importlib.util.find_spec
This API was used by the buildpack to determine whether certain
packages (like `django` or `nltk`) are installed, and so resulted in
deprecation warnings being output in the build log:
```
<string>:1: DeprecationWarning: 'pkgutil.find_loader' is deprecated and slated for removal in Python 3.14; use importlib.util.find_spec() instead
```
These deprecation warnings also prevented the output from `bin/release`
being parsed correctly for Django apps, resulting in:
```
failed to read buildpack metadata: (<unknown>): mapping values are not allowed in this context at line 1 column 31
```
These can be seen in the Heroku CI tests and Review App build logs
of this PR which upgrades the Python getting started guide app to
Python 3.12:
heroku/python-getting-started#209
https://dashboard.heroku.com/pipelines/4826c212-2bb2-4882-a147-4d0501eee7a4/tests/190
https://dashboard.heroku.com/apps/getting-star-edmorley-p-biivve/activity/builds/a6feca96-d451-4f01-b66d-c5d2185d5107
GUS-W-14230170.pkgutil.find_loader()
1 parent 6c49dd8 commit 14f5b96
2 files changed
+3
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
58 | 58 | | |
59 | 59 | | |
60 | 60 | | |
| 61 | + | |
61 | 62 | | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | 63 | | |
66 | | - | |
| 64 | + | |
67 | 65 | | |
68 | 66 | | |
69 | 67 | | |
| |||
0 commit comments