远程:导入错误:没有名为 gitlab 的模块

Gok*_*ARA 5 python git githooks gitlab

我用 python 写了 gitlab hook。并添加到 gitlab 服务器中的 post-receive 钩子。当我从笔记本电脑推送到远程源服务器时,出现以下错误。但是当我在 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
Run Code Online (Sandbox Code Playgroud)

小智 5

我已经使用以下命令解决了这个问题:

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


Gok*_*ARA 4

gitlab 在 /opt/gitlab/embedded/bin/ 路径中使用自己的 python2.7 二进制文件。我重命名了 /opt/gitlab/embedded/bin/python2.7 二进制文件并使用 /usr/bin/python2.7 创建符号链接

之后,您必须使用 git 用户更改 python 文件的所有者。

如果 gitlab 使用自己的 python 二进制文件,上述解决方案会导致同样的问题。因此,您可以在 post-receive 挂钩中运行这样的脚本

/usr/bin/python2.7 some_script.py