Bluehost: Python/CGI的shebang需要指向我的Python安装吗?
我这几天一直在为这个问题苦恼,找了很多地方也没找到答案。
我需要在Python2.7中使用numpy这个包,所以我在我的Bluehost账户上安装了Python 2.7(按照Bluehost的说明进行的)。然后,我用python2.7的easy_install命令在正确的site-packages文件夹中安装了numpy。通过命令行调用'python'时,显示的是Python2.7,并且可以顺利导入numpy。
但是,当我从我的网站调用一个python脚本(也就是使用CGI表单)时,发现它调用的是python2.6,这样就无法再导入numpy了。
我怀疑我的.bashrc文件有问题,内容如下: # .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
请问,网络服务器的CGI shebang需要指向我自己安装的Python吗?
谢谢,
Hugh
1 个回答
6
好的,我搞明白了。问题出在我的Python上,而不是服务器的CGI配置。其实,程序的第一行(比如说 "#!/usr/local/bin/python")是指向这个脚本所用的可执行文件的位置(我之前以为这只是个注释呢!)。因为在Bluehost上运行Py2.7.2需要安装两个版本(2.6和2.7),所以第一行必须写成2.7的路径,不然脚本就会默认使用2.6版本。
简单来说,解决办法就是把第一行改成 "#!/home4/username/python/Python-2.7.2/python"。