/ usr / bin / python3: нет модуля с именем pytest - PullRequest
2 голосов
/ 29 февраля 2020

Я использую python3 -m pytest для запуска моих тестов. Это работало, когда python3 указывало на python3 .6. Я установил python3 .7, сделал python3 .7 по умолчанию python3 с этими командами:

sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
sudo update-alternatives --config python3 

и снова установил все необходимые пакеты для python3 .7. Но теперь я больше не могу проводить свои тесты. Потому что там написано: /usr/bin/python3: No module named pytest. Я не использую виртуальный env, и проблема не в специфическом модуле c, потому что он не может найти другие модули. Это должно быть связано с python путями. Я не знаю, что изменить после переключения между python3 версиями, чтобы можно было легко найти необходимые модули в /home/ubuntu/.local/lib/python3.x/site-packages/.

Я переключился обратно на python3 .6 и получил ModuleNotFoundError: No module named 'jsonpath_ng' сейчас, который работал до переключения на python3 .7. Это вывод python3 -m site:

sys.path = [
    '/home/ubuntu',
    '/usr/lib/python36.zip',
    '/usr/lib/python3.6',
    '/usr/lib/python3.6/lib-dynload',
    '/home/ubuntu/.local/lib/python3.6/site-packages',
    '/usr/local/lib/python3.6/dist-packages',
    '/usr/lib/python3/dist-packages',
]
USER_BASE: '/home/ubuntu/.local' (exists)
USER_SITE: '/home/ubuntu/.local/lib/python3.6/site-packages' (exists)
ENABLE_USER_SITE: True

1 Ответ

1 голос
/ 02 марта 2020

Спасибо @hoefling, я нашел проблему, запустив python3 -m site. Я проводил тесты с моим пользователем jenkins, а не с root, пока я устанавливал все для пользователя root. Таким образом, USER_SITE фактически не существует для пользователя jenkins. Я снова установил все для пользователя jenkins, и теперь он может найти модули при использовании python3 -m.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...