说明:win10 64位系统,Python3.6.3
Win10环境下安装BeautifulSoup4貌似没有任何问题,但是当使用时就会报错,错误如下:
通过报错信息到相应的位置去查看文件
try:
is_file = os.path.exists(possible_filename)
except Exception, e: #line175
# This is almost certainly a problem involving
# characters not valid in filenames on this
# system. Just let it go.
pass
经过查找分析,此处是下载的模块是用python版本2编写的,它与我在计算机上安装的python版本具有不兼容的语法(版本3)。
解决办法,到这个地址下载最新的库安装包:
https://www.crummy.com/software/BeautifulSoup/bs4/download/4.6/
下载解压后,进入到相应的目录,在命令行下运行python3 setup.py文件
个人下载到Python36的scripts之下了C:\XXX\ Local\Programs\Python\Python36\Scripts
运行以上程序即可完成安装,可以检验一下:
>>> from bs4 import BeautifulSoup4
Traceback (most recent call last):
File "", line 1, in
File "c:\XXX\Programs\Python\Python36\Scripts\beautifulsoup4-4.6.3\bs4\__init__.py", line 54
'You are trying to run the Python 2 version of Beautiful Soup under Python 3. This will not work.'<>'You need to convert the code, either by installing it (`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).' ^
SyntaxError: invalid syntax
您正在尝试在python3下运行Python 2版本的Beautiful Soup。这是行不通的。你需要通过安装它来转换代码!
这还是报错啊,看来还得想办法咯。
解决办法:直接将压缩文件中的bs4复制到python安装目录下的lib中,然后再利用python自带工具2to3.py将版本2下的.py 文件转化为版本3下的文件。
提示:2to3.py位置:在python安装目录下的Tools/scripts/2to3.py。
最后,将bs4文件夹和2to3.py同时放到lib中,然后在cmd中定位到lib,运行:
2to3.py bs4 –w
2to3.py用法:2to3.py param1 (-w)
param1可以是要转换的.py文件,或者是文件夹,如果是文件夹,整个文件夹中的.py都会被转换。
-w可选,如果不写的话默认输出转换后的结果到显示屏,如果要把转换的文件再写入原文件,就需要加上。
但是,运行后好像没有什么变化啊,先进入python3试试吧,结果输入命令:
from bs4 import BeautifulSoup
让人大吃一惊,怎么还报错,明明已经运行了,怎么还会报错,网上各种博客都是这样的说法,没有其他的解法,无语中,在继续寻找解决办法吧。
终于,在一博客上找到了,具体细节可参考https://blog.csdn.net/Ltime/article/details/70307900
退出Python后,直接运行2to3 -w bs4
2to3 -w bs4
到最后输出如下的信息,则表示转换完成。输入Python3进入后,再次输入from bs4 import BeautifulSoup
没有报错,即表示安装成功!
>>> from bs4 import BeautifulSoup
>>>
如果上述安装方法都行不通,Beautiful Soup的发布协议允许你将BS4的代码打包在你的项目中,这样无须安装即可使用。到此就算完成了。