Bluehost:Python/CGI shebang需要指向我安装的Python吗?

Bluehost:Python/CGI shebang需要指向我安装的Python吗?,python,cgi,bluehost,Python,Cgi,Bluehost,我已经为这个问题挣扎了几天,似乎在任何地方都找不到答案 我需要从Python2.7运行numpy包,因此在我的Bluehost帐户上安装了Python2.7(按照Bluehost说明)。然后,我使用python2.7 easy_install将numpy安装到正确的site packages文件夹中。从命令行调用“python”表明调用了Python2.7,可以毫无问题地导入numpy 然而,当我从我的站点调用python脚本(即使用CGI表单)时,我看到它调用python2.6,并且不能再导入

我已经为这个问题挣扎了几天,似乎在任何地方都找不到答案

我需要从Python2.7运行numpy包,因此在我的Bluehost帐户上安装了Python2.7(按照Bluehost说明)。然后,我使用python2.7 easy_install将numpy安装到正确的site packages文件夹中。从命令行调用“python”表明调用了Python2.7,可以毫无问题地导入numpy

然而,当我从我的站点调用python脚本(即使用CGI表单)时,我看到它调用python2.6,并且不能再导入numpy

我怀疑我的.bashrc有问题,如下所示: #巴什尔先生

# User specific aliases and functions
alias mv='mv -i'
alias rm='rm -i'
alias cp='cp -i'

# Source global definitions
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

# Python stuff
export PATH=$HOME/python/Python-2.7.2/:$PATH
export PYTHONPATH=$HOME/python/lib/python2.7/site-packages:$PYTHONPATH
web服务器CGI shebang是否需要指向我自己安装的Python

干杯,

好吧,我想出来了。问题在于我的python,而不是服务器的CGI配置。基本上,程序的第一行(例如“#!/usr/local/bin/python”)指向用于该特定脚本的可执行文件的位置(我认为它只是一个注释!)。由于在Bluehost上运行Py2.7.2需要安装2个版本(2.6和2.7),因此后一个版本需要位于第一行,否则脚本将使用“默认”2.6


简而言之,解决方案是使用“#!/home4/username/python/python-2.7.2/python”来代替。

为什么要首先使用CGI?Bluehost似乎有一个内置的框架来通过CGI运行python。我有很多脚本,我想通过网络浏览器远程访问,所以这似乎是最轻松的方式。诚然,在出现这个问题之前,它似乎工作得相当好。我无法指定默认调用的Python版本,这似乎很疯狂……BH要求我们安装自己的Python副本。这就是我们在那里使用的东西。因此,我们最好指向我们自己的安装。服务器以root用户身份运行,以便找到它。因此,在shebang中需要一个完全限定的路径。(顺便说一句,在PuTTY的命令提示符下键入
whichpython
,会给出令人眼花缭乱的答案列表)我处理同一问题已经两天了。你的答案是救命稻草!谢谢:)干得好!使用我们最初安装在那里的版本是非常有意义的。顺便说一句,任何其他与Bluehost CGI斗争的人都应该看看这个: