python报错整理

声明:之前在用python写程序的过程中碰到过很多的报错,好多都是自己到处找解决方案之后解决的,很多答案都不正确,也浪费了不少时间,我会在日后的生活中会把我碰到的一些报错以及解决方法整理出来,方便大家查证,少走弯路。

分类:

一、路径错误导致的报错

  • (1)安装完xrld包之后还会报错

按照网上的答案发现安装完xrld包之后还是报错,如下图:

解决方法:安装路径不对,类似的错误可以从自己用的编译器的安装路径中去找,例如我用的pycharm,路径如下:

所以,应该在pycharm的包管理里面安装xrld包,这样路径正确了就不会再报错了。

  • (2)NLTK包运行过程中报错:LookupError

解决这个错误的相关链接:链接1链接2链接3

  • (3)导入自定义的包时,报错:ModuleNotFoundError: No module named 'XXXX'

在多层目录下导入自定义的模块时,可能会碰到这样的错误,但是,请千万千万注意看自己项目的目录,可能是导入的路径没看仔细。

例如:下面的目录,咋一看,导入的路径没有问题,怎么就是一直报错呢?

实际上这是三层目录,粗心的看成了两层,最外层跟第二层的名称是一样的(我知道可能没必要),所以对于这样的路径,严格按照路径一层一层的写。

import scrapy
from StackOverflow_Spider.StackOverflow_Spider.items import StackoverflowSpiderItem

加了一层路径之后,就不报错了。有时候不是什么环境配置的问题,就是路径错了,所以一定要仔细!!!

【说明】这是调试单个文件时碰到的问题(只是举例说明路径错误导致的报错),如果是调试整个爬虫,可以用命令框启动爬虫,也可以新建一个文件,把指令写成可执行的.py文件,如下面的例子,其中“XXX”是爬虫的名称。这是爬虫文件的调包还是按照正常的操作写

import scrapy
from StackOverflow_Spider.items import StackoverflowSpiderItem

  运行“main.py”即可,不用启动爬虫时,每次都打开命令框输入指令了。

from scrapy import cmdline
# cmdline.execute(['scrapy crawl XXX']) # 这种写法是错的,因为命令框需要一个一个命令符识别,不能识别字符串。如果要改,就写成下面的方法一。
# 方法一
# cmdline.execute('scrapy crawl XXX'.split()) # 这种写法就是分割字符串,也就变成了一个一个命令符。
# 方法二
cmdline.execute(['scrapy', 'crawl', 'XXX'])
  • (4)

二、写爬虫是遇到的问题

1. 利用Webdriver爬取网页信息中碰到的问题

错误1:selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH

解决办法如下:(1)先需要下载Chromedriver(根据自己的Chrome浏览器的版本下载对应的文件),一个叫chromedriver.exe文件(下载chromedriver) (下载完解压可能会碰到杀毒软件误报病毒,放心,添加信任即可,该文件绝对无毒);(2)把chromedriver.exe拷贝至Chrome浏览器目录下(如 C:\Program Files (x86)\Google\Chrome\Application)以及python根目录下(D:\Program Files (x86)\Python);【注】环境变量可有可无的,不用管。

2. 在python中,每一句代码都应该顶格写!

错误2:IndentationError: unexpected indent

出现这种错误,很可能是复制删帖代码的时候出现的。IndentationError:unexpected indent(其中indentation是缩进,缩排的意思),这个错误是说,出现了不恰当的缩进,因为在python中,每一行代码(模块内的代码除外,例如if,for,自定义的函数等模块)都应该定格写,不要留缩进。

Python对缩进要求很严格的,另外,也要注意区分空格缩进

三、文件操作遇到的报错

(1) pandas打开带有中文路径的文件时,会报错:OSError: Initializing from file failed

解决办法:

# 直接读取含中文的文件名(或中文路径)会报错
import pandas as pd

path = r"D:\【路径中有中文】\文件名.csv"
df = pd.read_csv(path)
# 调用open操作,则不会报错:
file = open(path)
df= pd.read_csv(file)

(2) pandas.errors.ParserError: Error tokenizing data

这是pandas在读取csv文件时,碰到错误的情况了(可能是空值,或者异常符号),可以选择跳过,可以通过统try?else输出错误的日志,之后检查。

pd.read_csv(filename, encoding=‘utf_8_sig’, error_bad_lines=False) #加上error_bad_lines=False 跳过错误

(3) 

四、NLTK相关报错

(1)Resource stopwords not found.

【错误类型】NLTK路径错误,会导致编译器找不到你安装的nltk的包。

运行这一段相当简单的代码时都会报错,提示找不到stopwords,可我明明已经下载了全部的nltk包,不可能是没有下载,我怀疑是载入的路径有问题。

from nltk.corpus import stopwords

stopwords_list = stopwords.words('english')
print(stopwords_list)

下面这种错误是因为我把我通过nltk.download()命令下载的路径,设置为非默认路径,会导致这个包里的程序在默认路径的库里找不到正确的路径,所以出现了下面的错误:

Traceback (most recent call last):
  File "D:\Program Files (x86)\JetBrains\PyCharm 2020.2.2\workspace\lib\site-packages\nltk\corpus\util.py", line 83, in __load
    root = nltk.data.find("{}/{}".format(self.subdir, zip_name))
  File "D:\Program Files (x86)\JetBrains\PyCharm 2020.2.2\workspace\lib\site-packages\nltk\data.py", line 586, in find
    raise LookupError(resource_not_found)
LookupError: 
**********************************************************************
  Resource stopwords not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('stopwords')
  
  For more information see: https://www.nltk.org/data.html

  Attempted to load corpora/stopwords.zip/stopwords/

  Searched in:
    - 'C:\\Users\\Name/nltk_data'
    - 'D:\\Program Files (x86)\\JetBrains\\PyCharm 2020.2.2\\workspace\\nltk_data'
    - 'D:\\Program Files (x86)\\JetBrains\\PyCharm 2020.2.2\\workspace\\share\\nltk_data'
    - 'D:\\Program Files (x86)\\JetBrains\\PyCharm 2020.2.2\\workspace\\lib\\nltk_data'
    - 'C:\\Users\\Name\\AppData\\Roaming\\nltk_data'
    - 'C:\\nltk_data'
    - 'D:\\nltk_data'
    - 'E:\\nltk_data'
**********************************************************************

解决办法:于是我就找到了这个报错检查的文件,在下载nltk.download()路径下的“data.py”文件里,这时候可以修改nltk.download时路径下的“data.py”文件,加上一条路径(即自己运行nltk.download()时选择的路径),如下图:

这时候,再运行跟nltk相关的程序,不好出现找不到文件的错误了。

这种奇怪的报错给了我们一个教训:尽量选用默认路径,选择奇怪的路径,这些下载下来的工具包在加载文件的时候可能会找不到下载的文件。

(2) 

 

 

 

 


不定期更新。。。


整理不易,如果对你有帮助,点个赞再走呗...

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值