python - импорт модулей на общий сервер - PullRequest
0 голосов
/ 04 октября 2011

У меня есть скрипт с именем gmailCleaner.py, на моем компьютере он работает отлично и настраивает мой gmail (используя imap) так, как я хочу.

, поэтому я хотел сделать этот скрипт доступным для всех на моемвеб-сайт (общий хостинг, включенный python) скрипт запускается, но не может подключиться к gmail (используя те же настройки, что и на моем компьютере, только разница в том, что на компьютере я использую raw_input, а на сервере я использую fata из HTML-формы)

Я предположил, что это потому, что у них нет файла imaplib, который я использовал - поэтому я загрузил его на сервер (в ту же папку, что и скрипт), он не работал.

new: получение этой ошибки: 'Объект модуля не имеет атрибута 'IMAP4_SSL'

. Любая помощь будет полезна

код:

#!/usr/bin/python

import imaplib
import os
import cgi

print 'Content-type: text/html\n\n'

try:
    M=imaplib.IMAP4_SSL('imap.gmail.com', 993)
except:
    print 'cannot connect to gmail<br />'

, и он не работает: S печатает«не удается подключиться к gmail» означает, что он запускается.

отредактируйте для комментария, пока не самый удобный для пользователя код, просто хотел, чтобы он сначала работал (удаляя все электронные письма из отправителя):

try:    
    USER = form.getvalue('username')
    PASS = form.getvalue('password')
    SENDER = form.getvalue('from')
    print USER
except:
    print 'cannot get form info<br />'

try:
    M=imaplib.IMAP4_SSL('imap.gmail.com', 993)
    M.login(USER +'@gmail.com',PASS)
    status, count = M.select('Inbox')
except Exception as e: print e

try:
    SENDER = '\"' + SENDER + '\"'
    data = M.search(None, 'FROM', SENDER)
    a = str(data[1])
    a = a.split()
    b = ''
    i = 0
    while i < len(a[-1]) - 2:
        b = b + a[-1][i]
        i += 1
    a[-1] = b
    b = ''
    i = 2
    while i < len(a[0]):
        b = b + a[0][i]
        i += 1
    a[0] = b
except:
    print 'cannot get ids<br />'


try:
    print 'deleting!<br />'
    i = 0
    while i < len(a):
        M.store(a[i], '+FLAGS', '\\Deleted')
        i += 1
except:
    print 'cannot delete<br />'

1 Ответ

0 голосов
/ 04 октября 2011

Если ваш общий сервер поддерживает установку pip и virtualenv, попробуйте это
virtualenv env --no-site-packages
pip install python<version>
pip install otherpythonpackages

Это должно решить вашу проблему.

...