python - 在共享服务器上导入模块
我有一个叫做gmailCleaner.py的脚本,在我的电脑上运行得很好,可以按照我想要的方式调整我的Gmail(使用imap)。
所以我想把这个脚本放到我的网站上,让大家都能用(我的网站是共享主机,支持Python)。脚本可以运行,但就是无法连接到Gmail(使用的设置和我电脑上的一样,唯一的不同是我在电脑上用的是raw_input,而在服务器上用的是HTML表单的数据)。
我以为是因为服务器上缺少我用的imaplib文件,所以我把它上传到了服务器(和脚本放在同一个文件夹里),但还是不行。
现在出现了这个错误:'module' object has no attribute '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
如果你的共享服务器支持 pip install 和 virtualenv,可以试试这个方法:
virtualenv env --no-site-packages
(这条命令是用来创建一个新的虚拟环境,叫做 env,并且不使用系统里已经安装的包)
pip install python<version>
(这条命令是用来安装指定版本的 Python)
pip install otherpythonpackages
(这条命令是用来安装其他你需要的 Python 包)
这样应该能解决你的问题。