indygreg / indygreg/PyOxidizer
importlib_metadata.PackageNotFoundError: importlib_metadata
- Dominant language
- Rust
- Stars
- 6.2k
- Forks
- 256
- PR merge metrics
- No merged PRs in 30d
Description
When building a package including importlib_metadata, it fails.
During the build
```console
...
adding embedded resource: changelog.rst
adding embedded resource: index.rst
adding embedded resource: using.rst
adding embedded resource: example-21.12-py3-none-any.whl
adding embedded resource: PKG-INFO
adding embedded resource: SOURCES.txt
adding embedded resource: dependency_links.txt
adding embedded resource: installed-files.txt
adding embedded resource: requires.txt
adding embedded resource: top_level.txt
adding embedded resource: PKG-INFO
adding embedded resource: SOURCES.txt
adding embedded resource: dependency_links.txt
adding embedded resource: installed-files.txt
adding embedded resource: top_level.txt
adding embedded resource: PKG-INFO
adding embedded resource: SOURCES.txt
adding embedded resource: dependency_links.txt
adding embedded resource: installed-files.txt
adding embedded resource: requires.txt
adding embedded resource: top_level.txt
...
package importlib_metadata-0.23-py3.7.egg-info does not exist; excluding resources: ["PKG-INFO", "SOURCES.txt", "dependency_links.txt", "installed-files.txt", "requires.txt", "top_level.txt"]
package more_itertools-7.2.0-py3.7.egg-info does not exist; excluding resources: ["PKG-INFO", "SOURCES.txt", "dependency_links.txt", "installed-files.txt", "top_level.txt"]
package zipp-0.6.0-py3.7.egg-info does not exist; excluding resources: ["PKG-INFO", "SOURCES.txt", "dependency_links.txt", "installed-files.txt", "requires.txt", "top_level.txt"]
...
resolved 4 embedded resource files across 2 packages: {
"importlib_metadata.docs": {
"changelog.rst",
"index.rst",
"using.rst",
},
"importlib_metadata.tests.data": {
"example-21.12-py3-none-any.whl",
},
}
```
```py
>>> import importlib_metadata
Traceback (most recent call last):
File "", line 1, in
File "importlib_metadata", line 547, in
File "importlib_metadata", line 509, in version
File "importlib_metadata", line 482, in distribution
File "importlib_metadata", line 187, in from_name
importlib_metadata.PackageNotFoundError: importlib_metadata
```
Could this be because its setup.py is
```
from setuptools import setup
setup(use_scm_version=True)
```
And setup.cfg includes `setup_requires=setuptools-scm`.
I tried adding setuptools-scm to the project first, and then it is added to the list
```
package importlib_metadata-0.23-py3.7.egg-info does not exist; excluding resources: ["PKG-INFO", "SOURCES.txt", "dependency_links.txt", "installed-files.txt", "requires.txt", "top_level.txt"]
package more_itertools-7.2.0-py3.7.egg-info does not exist; excluding resources: ["PKG-INFO", "SOURCES.txt", "dependency_links.txt", "installed-files.txt", "top_level.txt"]
package setuptools_scm-3.3.3-py3.7.egg-info does not exist; excluding resources: ["PKG-INFO", "SOURCES.txt", "dependency_links.txt", "entry_points.txt", "installed-files.txt", "top_level.txt", "zip-safe"]
package zipp-0.6.0-py3.7.egg-info does not exist; excluding resources: ["PKG-INFO", "SOURCES.txt", "dependency_links.txt", "installed-files.txt", "requires.txt", "top_level.txt"]
```
The comment at https://github.com/indygreg/PyOxidizer/blob/f2ad172e69fd614d8cba58a467064ad018db098a/pyoxidizer/src/pyrepackager/fsscan.rs#L216 (`Ignore EGG-INFO directory..`) is possibly related. Packaging metadata is quite important for a lot of Python code to run properly, and likely this is the same underlying problem with `pkg_resources`.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the `fsscan.rs` location linked in the issue and compare its EGG-INFO handling with the `setup.py` and `setup.cfg` shown for importlib_metadata. Reproduce the build and import failure, then verify that the packaged metadata is available so `importlib_metadata` can resolve its own distribution and the relevant resources are not incorrectly excluded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100