python - 如何在 git post-receive hook 中指定 python 解释器?

我有安装命令的接收后 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 也是如此)
  • 指定 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/

相关文章:

javascript - 错误类型错误 : Cannot read property 'tagNam

javascript - 子方法未定义 vue.js

c# - 如何在 OData v4 中获取枚举值而不是枚举名称?

android - 获取屏幕曲线、角和切口的物理形状

python - 模仿 AWS CLI/gcloud 命令行参数

security - 自动关联社交登录有什么安全风险(Oauth2)

java - 运行时使用插件的不同库版本

json - 使用 REST API 的 POST 方法进行读取操作

tensorflow - 如何在 tensorflow playground 的第 4 个数据集上实

python - 删除使用 imageio 或 PIL 创建的 GIF 中的空间插值或压缩