Пакеты установлены, но не найдены - PullRequest
0 голосов
/ 15 марта 2020

У меня есть пакеты, установленные в / usr / local / lib, и я добавил это также в мой PATH, но затем я пытаюсь импортировать его в любой из моих python сценариев, и я получаю сообщение об ошибке, сообщающее, что модуль не найден.

-bash-4.2$ pip2 list | grep pytest
pytest-mock                             2.0.0

Мой ПУТЬ:

echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/bin

ОШИБКА:

-bash-4.2$ python2
>>> import pytest
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named pytest

Только если пакеты установлены в моей папке /users/user-name/.local/bin , это отражено, иначе это не так.

Мой вариант использования - использовать это устройство в качестве ведомого устройства для моей установки Jenkins. Я попытался внедрить этот PATH непосредственно в работу во время процесса сборки. У меня это не сработало.

Я застрял в этом довольно давно, любая помощь по этому вопросу очень ценится.

1 Ответ

0 голосов
/ 17 марта 2020

Во-первых, обычно рекомендуется использовать virtualenv для создания Python сред - установка Python пакетов для всей системы вызывает проблемы.

Во-вторых, Ваш путь может не работать, потому что вы устанавливаете PATH так, как игнорирует Дженкинс. Самое простое решение - предоставить полный путь к файлу: /usr/local/bin/pytest.

Самый безопасный способ - объединить два вышеизложенных: создать virtualenv, установить в нем pytest и указать полный путь при использовании (примечание: вам не нужно активировать virtualenv, чтобы использовать его).

...