我有一个想要使用BeautifulSoup的Python脚本:
from bs4 import BeautifulSoup
当我从命令行运行脚本时,它工作正常。当我在外部运行脚本时,从浏览器中,它就会在该行上死掉。网络日志说:
ImportError: No module named bs4
我也尝试过,结果相同:
import bs4
import BeautifulSoup
我从tarball安装了模块,它现在位于Python路径中的文件夹中:
/usr/home/myName/.local/lib/python2.7/site-packages/
我已确保bs4
目录的权限以及文件夹中的所有.py和.pyc文件都允许执行(chmod 775 *.py
),并且我已检查过内部和在外部运行相同版本的Python(2.7.9 (default, Jan 12 2015, 16:33:18)
[GCC 4.2.1 20070719 [FreeBSD]]
)
答案 0 :(得分:1)
您尚未安装BeautifulSoup,以使计算机上的所有用户受益。相反,您只是为了名为“myName”的用户的利益而安装。特别是,您尚未安装它以供运行Web服务器的用户使用(通常名为“www”或“www-data”)。
如果可以,请在系统范围内安装BeautifulSoup。
否则,您可以像这样修改脚本:
import sys
sys.path[0:0] = ['/usr/home/myName/.local/lib/python2.7/site-packages/']
from bs4 import BeautifulSoup
答案 1 :(得分:0)
感谢@robᵩ(phi)指出错误:因为这个脚本在共享服务器上,我无法给运行Web服务器的“用户”授予执行权限(在这种情况下,“nobody” )。我 能够使用ssh运行脚本,因为在那种情况下我是用户。
因为我无法说服托管服务为所有用户安装BeautifulSoup
,所以我最终使用了一个不同的库lxml.html
,我的主机服务器使用Python安装它。
(我发现lxml.html
很高兴与之合作