我有安装命令的接收后 Hook :
pip install -r requirements.txt
在我调用 git push live master
钩子(Hook)调用 pip install
命令后,但在远程服务器上安装开始于系统 python2.7 而不是我指定为全局的 python3.6.4在 pyenv。我想在非交互式 session 中不会调用带有 pyenv 设置的 .bashrc ...
那么...如何在 git post-receive hook 中指定 python 解释器?
丑陋的解决方案:
/usr/bin/python
使其指向所需的解释器(对于 pip 也是如此)/home/user/.pyenv/.../pip install -r ...
通过创建单独的 virtualenv 并将 source path/to/virtualenv/activate
添加到 Hook 脚本来解决。
在我的例子中,由 pyenv 创建的 virtualenv 具有不可执行的 activate
因此还需要使用 chmod +x path/to/activate
使其可执行
最佳答案
检查是否adding a shebang您的接收后 Hook 脚本可以提供帮助
#!/usr/bin/python3
或者:
#!/usr/bin/env python3
另一种选择,described here ,就是定义pip3
,它显式引用了一个用python3安装的pip。
https://stackoverflow.com/questions/49215194/