Windows下python3的版本安装了python2版本的BeautifulSoup4模块,显示'You are trying to run the Python 2 version of Beautiful Soup under Python 3.(`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).'
转载自:http://www.cnblogs.com/Dragon5/p/6498422.html
这个的主要问题在于:python3的版本安装了python2版本的BeautifulSoup4模块。
解决方法:用python3自带的工具可以直接转换BeautifulSoup4模块为python3的版本。
具体情况:
按照网上教程,将cmd的目录定位到解压缩文件夹地址,然后 >>python setup.py install
(
Window下不能直接解压tar.giz文件,可以使用7z解压软件提取解压再在CMD下打开
)
但是在IDLE中import bs4时,会出现:
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
import bs4
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35-32\lib\bs4\__init__.py", line 48
'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`).'
在网上找了很久,始终没解决。
然后我又试了一下>>easy_setup.py,import bs4时报的错误却是:no such module.
- 解决前的python3的BeautifulSoup文件的情况:
BeautifulSoup(python2版本)的解压之后的文件夹已经放在python34文件夹的目录下,
开始-运行-cmd之后,控制台输入python setup.py install, BeautifulSoup(python2版本)安装成功。
在调用时,先输入python进入python编辑,再from bs4 import BeautifulSoup就出现'You are trying to run the Python 2 version of Beautiful Soup under Python 3.(`python setup.py install`) or by running 2to3 (`2to3 -w bs4`).' <意思是你尝试运行python2版本的BeautifulSoup,在python3的环境下>
解决办法:
- 直接将压缩文件中的bs4的那个文件夹整体 复制 到python安装目录下的lib文件夹中,
- 将2to3.py这个文件也复制一份放到lib文件夹中,运行:
- 然后在cmd中定位到lib,(开始-运行-cmd,控制台输入cd C:\python34\lib)在这里可以直接复制lib文件夹的位置,然后右键复制到控制台里面,回车。
- 最后运行: python 2to3.py bs4 -w就好了。此时屏幕会滚动起来很多代码,结束之后就成功了。
注意:2to3.py位置:在python安装目录下的Tools/scripts/2to3.py。
2to3.py 用法:2to3.py param1 (-w)
param1 可以是要转换的.py文件,或者是文件夹,如果是文件夹,整个文件夹中的.py都会被转换。
-w可选,如果不写的话默认输出转换后的结果到显示屏,如果要把转换的文件再写入原文件,就需要加上。这里我想是需要写上的,因为以后还要使用。
现在,就可以先python进入python编辑,然后from bs4 import BeautifulSoup或者import bs4,不出现任何其他报错,就意味着成功转换了BeautifulSoup的版本。