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) 

不定期更新。。。


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

猜你喜欢

转载自blog.csdn.net/Ryan_lee9410/article/details/87013330