(address . bug-guix@gnu.org)
Python can not load all pip-related python modules when loaded from a
manifest file, yet seems to work fine when loaded 'directly' as part of
a `guix environment'-invocation.
Provided that we have a file in `hi.py':
Toggle snippet (6 lines)
import pip
print("halfwaypoint")
import pip._internal.index.package_finder
print("I made it!")
and a `manifest.scm' with:
Toggle snippet (7 lines)
(use-modules (gnu) (guix packages)
(gnu packages python)
(gnu packages python-xyz))
(packages->manifest (list python python-pip))
I can get the expected output by running:
`guix environment --pure --ad-hoc python python-pip -- python3 hi.py' =>
Toggle quote (3 lines)
> halfwaypoint
> I made it!
Yet, when I run the following:
`guix environment --pure -m manifest.scm -- python3 hi.py' =>
Toggle snippet (19 lines)
halfwaypoint
Traceback (most recent call last):
File "hi.py", line 4, in <module>
import pip._internal.index.package_finder
File "/gnu/store/4m5vhlq61qnj36rq60l83xcmgj3mx92j-profile/lib/python3.8/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/gnu/store/4m5vhlq61qnj36rq60l83xcmgj3mx92j-profile/lib/python3.8/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/gnu/store/4m5vhlq61qnj36rq60l83xcmgj3mx92j-profile/lib/python3.8/site-packages/pip/_internal/cli/main_parser.py", line 11, in <module>
from pip._internal.commands import (
File "/gnu/store/4m5vhlq61qnj36rq60l83xcmgj3mx92j-profile/lib/python3.8/site-packages/pip/_internal/commands/__init__.py", line 6, in <module>
from pip._internal.commands.completion import CompletionCommand
File "/gnu/store/4m5vhlq61qnj36rq60l83xcmgj3mx92j-profile/lib/python3.8/site-packages/pip/_internal/commands/completion.py", line 6, in <module>
from pip._internal.cli.base_command import Command
File "/gnu/store/4m5vhlq61qnj36rq60l83xcmgj3mx92j-profile/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 26, in <module>
from pip._internal.index import PackageFinder
ImportError: cannot import name 'PackageFinder' from 'pip._internal.index' (/gnu/store/4m5vhlq61qnj36rq60l83xcmgj3mx92j-profile/lib/python3.8/site-packages/pip/_internal/index/__init__.py)
Why is there a difference in the first place? Shouldn't both approaches work?
- Jelle