Python导入BeautifulSoup不起作用



我有一个Python脚本想要使用BeautifulSoup:

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]]

为了计算机上所有用户的利益,您没有安装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

感谢@robᵩ(phi)指出错误:因为这个脚本在共享服务器上,我无法将执行权限授予运行web服务器的"用户"(在本例中为"nobody")。我能够使用ssh运行脚本,因为在这种情况下我是用户。

因为我无法说服托管服务为所有用户安装BeautifulSoup,所以我最终使用了另一个库lxml.html,我的主机服务器确实使用Python安装了这个库。

(我发现lxml.html也很乐意与之合作)

最新更新