Запустить установленный пакет из pexpect

#python #python-3.x #pexpect #pkg-resources

#python #python-3.x #pexpect #pkg-ресурсы

Вопрос:

Я скачал pyocd и успешно его собрал. Теперь я могу запустить инструмент из командной строки из любого места. Однако при попытке запустить его с помощью pexpect отображается следующая ошибка:

 Traceback (most recent call last):
  File "c:UserselephantAppDataLocalProgramsPythonPython37-32Scriptspyocd-script.py", line 6, in <module>
    from pkg_resources import load_entry_point
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 668, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 638, in _load_backward_compatible
  File "C:Projectsrunnermytestvenvlibsite-packagessetuptools-39.1.0-py3.7.eggpkg_resources__init__.py", line 3086, in <module>
  File "C:Projectsrunnermytestvenvlibsite-packagessetuptools-39.1.0-py3.7.eggpkg_resources__init__.py", line 3070, in _call_aside
  File "C:Projectsrunnermytestvenvlibsite-packagessetuptools-39.1.0-py3.7.eggpkg_resources__init__.py", line 3099, in _initialize_master_working_set
  File "C:Projectsrunnermytestvenvlibsite-packagessetuptools-39.1.0-py3.7.eggpkg_resources__init__.py", line 574, in _build_master
  File "C:Projectsrunnermytestvenvlibsite-packagessetuptools-39.1.0-py3.7.eggpkg_resources__init__.py", line 892, in require
  File "C:Projectsrunnermytestvenvlibsite-packagessetuptools-39.1.0-py3.7.eggpkg_resources__init__.py", line 778, in resolve
pkg_resources.DistributionNotFound: The 'pyocd==0.14.1.dev277 dirty' distribution was not found and is required by the application
  

Пожалуйста, помогите понять, что не так и почему это работает из командной строки?

Комментарии:

1. Похоже, что $PYTHONPATH переменная установлена неправильно. Или, возможно, вы установили несовместимую версию? .dev277 dirty звучит немного странно, вы устанавливали из репозитория git?

2. @MartinUeding Вы правы, это была пользовательская сборка. Я только что клонировал исходные тексты из Git и собрал его. Поведение такое же, но в другой версии: pkg_resources.DistributionNotFound: The 'pyocd==0.17.1.dev71' distribution was not found and is required by the application

3. @MartinUeding $PYTHONPATH Переменной вообще нет. исполняемый файл pyocd находится в c:UserselephantAppDataLocalProgramsPythonPython37-32Scripts .

4. Версия верна c:>pyocd -V вывод 0.17.1.dev71

Ответ №1:

Проблема заключалась в том, что я попытался создать, pyocd.exe и pexpect не смог найти пакет. Я изменил строку на python -m pyocd , и она просто отлично работает. Я новичок в Python и ошибочно подумал, что exe- это скомпилированный код, как и другие exe-файлы в Windows. Однако это всего лишь инструкция по запуску пакета с использованием Python.