2013-04-10 87 views
2

我有一个需要机械化的CGI脚本,但它并未在我的Web主机上安装在系统上。我在我的主目录在CGI脚本的主目录中导入python模块

$HOME/.local/lib/python2.7/site-packages/mechanize-0.2.5-py2.7.egg 

安装它。然而我的CGI脚本不能导入机械化

#!/usr/bin/python 

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

我该如何解决这个问题?

+0

你确定CGI脚本不运行作为不同的用户? – mata 2013-04-10 19:31:05

回答

1

发生这种情况是因为您的cgi脚本作为不同的用户(可能是apache或root)运行,所以Python不会使用您的home文件夹中的site-packages目录。

您可能想要在这里执行的操作是将home文件夹中的site-packages目录添加到将由整个系统使用的站点目录列表中。

您可以通过添加文件sitecustomize.py在你的Python安装的site-packages目录中的以下内容做到这一点:

import site 
site.addsitedir('/home/YOUR_USER/.local/lib/python2.7/site-packages') 

在情况下,它并不明显,与实际路径到您家更换/home/YOUR_USER目录。

您可以寻找到Python安装的site-packages目录使用以下命令:

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