remote: ImportError: нет модуля с именем gitlab

Я написал Gitlab крюк с Python. И добавил к пост-получение хуки на сервере gitlab. Когда я нажимаю на удаленный сервер происхождения с моего ноутбука, я получаю следующую ошибку. Но это работает, когда я запускаю скрипт вручную на сервере gitlab. Как я могу решить проблему?

 Counting objects: 3, done.
 Writing objects: 100% (3/3), 240 bytes | 0 bytes/s, done.
 Total 3 (delta 0), reused 0 (delta 0)
 remote: Traceback (most recent call last):
 remote:   File "push.py", line 4, in <module>
 remote:     import gitlab
 remote: ImportError: No module named gitlab

2 ответа

Решение

gitlab использует собственный двоичный файл python2.7 в / opt / gitlab / внедренный / bin / path. я переименовал /opt/gitlab/embedded/bin/python2.7 двоичный файл и создал символическую ссылку с /usr/bin/python2.7

После этого вы должны сменить владельца файла python на пользователя git.

Приведенное выше решение вызывает ту же проблему, если gitlab использует собственный двоичный файл python. Из-за этого вы можете запустить скрипт, подобный этому, в хуле post-receive

/usr/bin/python2.7 some_script.py

Я решил эту проблему с помощью следующей команды:

/usr/local/bin/python3 -m pip install -U python-gitlab

Другие вопросы по тегам