我用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
答案 0 :(得分:2)
gitlab在/ opt / gitlab / embedded / bin / path中使用自己的python2.7二进制文件。 我重命名/opt/gitlab/embedded/bin/python2.7 binary并使用/usr/bin/python2.7创建符号链接
之后,您必须使用git user更改python文件的所有者。
如果gitlab使用自己的python二进制文件,上述解决方案会导致同样的问题。因此,你可以在post-receive hook中运行这样的脚本
/usr/bin/python2.7 some_script.py