2013-04-10 2 views
2

У меня есть сценарий CGI, который нуждается в механизме, но он не установлен на всей системе на моем веб-хосте. Я установил его в моем домашнем каталогеimport python module в домашнем каталоге в скрипте CGI

$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

ответ

1

Это происходит потому, что ваш скрипт cgi работает как другой пользователь (возможно, apache или root), поэтому Python не будет использовать каталог сайтов-пакетов в вашей домашней папке.

Что вы, вероятно, захотите сделать здесь, это добавить каталог сайтов в свою домашнюю папку в список каталогов сайтов, которые будут использоваться всей системой.

Вы можете сделать это путем добавления файла 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()"