使用python出现的问题及解决方案

2019-04-22  本文已影响0人  Athenaearl

pycharm无法正常引入自定义类

This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items.

这是因为,pycharm 是从source目录作为根目录进行查找的,如果想要正常引包
右键项目->Make Directory as ->Sources Root

pickle.UnpicklingError: the STRING opcode argument must be quoted

在使用pickle.load()的时候,使用不当会报错:
主要要考虑的情况如下:

  1. 打开文件时候是否是以“rb”形式打开:
    正确形式:
import pickle
with open(filePath, "rb") as input_file:
  content = pickle.load(input_file)
  1. 是否是因为pickle文件的版本和使用的python版本不同:
    也就是说,比如使用python2.7生成的pickle文件,想用python3.6来取出内容
    处理方法:
import pickle
with open(filePath, "rb") as input_file:
  content = pickle.load(input_file, encoding="latin1")
  1. 由于操作系统不同:
    Unix 的 "\n" 和 DOS 的 "\r\n"
    处理方法:
    重新生成一个新的文件:
original = "word_data.pkl"
destination = "word_data_unix.pkl"

content = ''
outsize = 0
with open(original, 'rb') as infile:
  content = infile.read()
with open(destination, 'wb') as output:
  for line in content.splitlines():
  outsize += len(line) + 1
  output.write(line + str.encode('\n'))

print("Done. Saved %s bytes." % (len(content)-outsize))

再使用 word_data_unix.pkl 就可以成功读取了

nltk.dowload()

nltk 是一个python自然语言处理中非常常用的包
但是使用的时候,如果这个语料库或者包,没有下载,它会提示下载
一般来说

import nltk
nltk.download()

就会弹框,给出它的下载工具,下载即可
但是笔者在使用的时候,出现如下问题:


SSL ERROR

解决方案,不让SSL进行检查

import nltk
import ssl

try:
    _create_unverified_https_context = ssl._create_unverified_context
except AttributeError:
    pass
else:
    ssl._create_default_https_context = _create_unverified_https_context

nltk.download()

成功

上一篇下一篇

猜你喜欢

热点阅读