pdm-project / pdm-venv

A plugin for pdm that enables virtualenv management
https://pdm-project.github.io/pdm-venv
MIT License
24 stars 4 forks source link

pdm venv activate very slow #24

Closed armenzg closed 2 years ago

armenzg commented 2 years ago

I set things up last week with this:

curl -sSL https://raw.githubusercontent.com/pdm-project/pdm/main/install-pdm.py | python -
echo "export PATH=${HOME}/.local/bin:$PATH > ~/.zshrc"
pdm --pep582 >>~/.zshrc
pdm plugin add pdm-venv

My host is an Apple M1 13" from end of 2020.

Last week executing eval (pdm venv activate 3.8) was rather fast. This week it seems to get stuck for almost a minute on pdm venv activate 3.8:

armenzg@Armens-M1-MBP-2 python-arm64-wheels % set -x
armenzg@Armens-M1-MBP-2 python-arm64-wheels % eval "$(pdm venv activate 3.8)"
+-zsh:3> pdm venv activate 3.8
armenzg commented 2 years ago

I think I'm hitting a pdm issue. I disabled checking for updates with pdm config -vv check_update False

The stack trace (once I would hit Ctrl + C) would look like this:

❯ pdm config check_update False
^CTraceback (most recent call last):
  File "/Users/armenzg/.local/bin/pdm", line 10, in <module>
    sys.exit(main())
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pdm/core.py", line 200, in main
    return Core().main(args)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pdm/core.py", line 165, in main
    check_update(options.project)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pdm/cli/actions.py", line 737, in check_update
    candidate = get_finder([]).find_best_candidate("pdm")
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/index/package_finder.py", line 879, in find_best_candidate
    candidates = self.find_all_candidates(project_name)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/index/package_finder.py", line 824, in find_all_candidates
    page_candidates = list(page_candidates_it)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/index/sources.py", line 134, in page_candidates
    yield from self._candidates_from_page(self._link)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/index/package_finder.py", line 783, in process_project_url
    html_page = self._link_collector.fetch_page(project_url)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/index/collector.py", line 512, in fetch_page
    return _get_html_page(location, session=self.session)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/index/collector.py", line 422, in _get_html_page
    resp = _get_html_response(url, session=session)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/index/collector.py", line 120, in _get_html_response
    resp = session.get(
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/requests/sessions.py", line 555, in get
    return self.request('GET', url, **kwargs)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_internal/network/session.py", line 449, in request
    return super().request(method, url, *args, **kwargs)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/requests/sessions.py", line 542, in request
    resp = self.send(prep, **send_kwargs)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/requests/sessions.py", line 655, in send
    r = adapter.send(request, **kwargs)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/cachecontrol/adapter.py", line 53, in send
    resp = super(CacheControlAdapter, self).send(request, **kw)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/requests/adapters.py", line 439, in send
    resp = conn.urlopen(
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/connectionpool.py", line 699, in urlopen
    httplib_response = self._make_request(
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/connectionpool.py", line 382, in _make_request
    self._validate_conn(conn)
  File "/Users/armenzg/Library/Application Support/pdm/venv/lib/python3.8/site-packages/pip/_vendor/urllib3/connectionpool.py", line 1010, in _validate_conn
    conn.connect()
from __future__ import annotations