setup.cfg объявляет ошибки console_scripts с «Точки входа должны быть перечислены в группах»

#python #pip #setuptools

#python #pip #setuptools

Вопрос:

Я пытаюсь настроить setuptools для создания точки входа консоли для моего пакета, следуя документам, и в итоге получаю следующую конфигурацию:

 [options.entry_points]
console_scripts = 
    hiplog = hiplog.scripts.hiplog:cli
  

Но когда я pip install -e . в своем репозитории, pip выдает следующую ошибку:

 ERROR: Exception:
Traceback (most recent call last):
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2857, in get_entry_map
    ep_map = self._ep_map
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2815, in __getattr__
    raise AttributeError(attr)
AttributeError: _ep_map

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_internal/cli/base_command.py", line 228, in _main
    status = self.run(options, args)
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
    return func(self, options, args)
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_internal/commands/install.py", line 397, in run
    installed = install_given_reqs(
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_internal/req/__init__.py", line 75, in install_given_reqs
    uninstalled_pathset = requirement.uninstall(
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_internal/req/req_install.py", line 685, in uninstall
    uninstalled_pathset = UninstallPathSet.from_dist(dist)
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_internal/req/req_uninstall.py", line 571, in from_dist
    console_scripts = dist.get_entry_map(group='console_scripts')
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2859, in get_entry_map
    ep_map = self._ep_map = EntryPoint.parse_map(
  File "/home/taschan/.pyenv/versions/3.9.0/envs/hiplog/lib/python3.9/site-packages/pip/_vendor/pkg_resources/__init__.py", line 2531, in parse_map
    raise ValueError("Entry points must be listed in groups")
ValueError: Entry points must be listed in groups
  

Что я делаю не так?

Ответ №1:

Я столкнулся с тем же симптомом, и основной причиной оказался сбой pip install -e . при предыдущем запуске. Удаление projectname.egg-info каталога сделало свое дело.