无WHM权限下,如何让cPanel的Application Manager使用pip3替代pip部署Python应用
我太懂你现在的处境了——没有WHM权限,cPanel自带的Application Manager偏要默认用pip(对应Python2还跑不通),而你只能靠pip3正常操作,还碰不了sudo这类权限命令,处处受限。给你几个实用的解决思路,全是不用改系统文件的用户级操作:
先手动用pip3装好依赖,再走Application Manager流程
cPanel让你执行的验证命令本质是确认依赖是否安装完成,你完全可以自己用pip3提前把依赖装好,跳过它的pip检查:
先通过which pip3确认你主机上pip3的绝对路径(比如有的主机是/usr/local/bin/pip3),然后执行:cd /home2/user_name/web_app && 你的pip3绝对路径 install --user -r requirements.txt执行完后回到Application Manager点部署,它检测到依赖都满足,就不会再卡那步错误了。
给当前用户设置pip别名指向pip3
你可以修改自己的shell配置文件,让pip命令自动映射到pip3。用编辑器打开~/.bashrc或者~/.bash_profile文件,加上这一行:alias pip='你的pip3绝对路径'然后执行
source ~/.bashrc让别名生效。不过要注意:cPanel的Application Manager可能用的是非交互式shell,不一定会加载这个别名,所以这个方法不一定100%生效,但胜在简单,值得一试。检查Application Manager是否支持指定Python版本
部分版本的cPanel Application Manager允许选择Python版本,你找找有没有Python3.x的选项(比如3.8、3.9这类),选好之后它会自动对应使用pip3处理依赖,这是最省心的办法。如果有这个选项,直接选它就行。临时兜底:给requirements.txt指定兼容包版本
你之前用pip装gunicorn失败,是因为新版gunicorn已经不支持Python2了。如果上面的方法都走不通,可以试试在requirements.txt里给gunicorn指定一个兼容Python2的旧版本,比如:gunicorn==20.1.0不过这只是临时绕开
pip的错误,本质还是不如直接用pip3靠谱,所以优先试前面的方法。
这些方法都是基于你的用户目录操作,不会涉及修改系统文件,完全符合你受限用户的身份,放心试就行!
备注:内容来源于stack exchange,提问作者Paul




