在CGI脚本的主目录中导入python模块

在CGI脚本的主目录中导入python模块,python,cgi,python-import,Python,Cgi,Python Import,我有一个需要mechanize的CGI脚本,但它没有安装在我的web主机的系统范围内。我在我的主目录中安装了它 $HOME/.local/lib/python2.7/site-packages/mechanize-0.2.5-py2.7.egg 但是,我的CGI脚本无法导入mechanize #!/usr/bin/python import sys,cgi,cgitb import mechanize ^-- Exception(import mechanize ImportError: c

我有一个需要mechanize的CGI脚本,但它没有安装在我的web主机的系统范围内。我在我的主目录中安装了它

$HOME/.local/lib/python2.7/site-packages/mechanize-0.2.5-py2.7.egg
但是,我的CGI脚本无法导入mechanize

#!/usr/bin/python

import sys,cgi,cgitb
import mechanize
^-- Exception(import mechanize ImportError: cannot import name mechanize)

如何修复此问题?

发生这种情况是因为您的cgi脚本是以其他用户(可能是apache或root)的身份运行的,因此Python不会使用主文件夹中的site packages目录

您可能希望在这里将主文件夹中的site packages目录添加到整个系统将使用的站点目录列表中

您可以通过在Python安装的site packages目录中添加包含以下内容的文件
sitecustomize.py

import site
site.addsitedir('/home/YOUR_USER/.local/lib/python2.7/site-packages')
如果不明显,请用主目录的实际路径替换
/home/YOUR_USER

您可以使用以下命令找到Python安装站点包目录的位置:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

您确定cgi脚本没有作为其他用户运行吗?