前几天在 Mac 上安装 Scrapy,按照官方文档的步骤使用 pip 安装 scrapy 后报一个权限错误 OSError: [Errno 1] Operation not permitted: '/...var/folders/6t/h404bjcd5tb_4q86tpv_251rv_0h0j/T/pip-sYsqDS-uninstall/System/Library/Frameworks/Python.framework...使用此命令可以正常安装 Scrapy,安装完成之后运行 Scrapy,发现又报一个引用错误 ImportError: cannot import name xmlrpc_client,搜索之后发现解决办法是要手动删除机子上的...我们这里遇到的问题就是跟 SIP 有关,解决办法就是进入 Recovery 模式关闭它。...关闭的具体步骤是,重启 Mac,按住 cmd + R,等待进入 Recovery 界面,在 Recovery 界面唤出命令行,执行以下命令然后重启机器即可: csrutil disable
断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...当使用2元组创建此类型的异常时,第一个项目在实例的errno属性上可用(假定为错误编号),第二个项目可用于该 strerror属性(通常是关联的错误消息)。元组本身也可以在args属性上使用。...在执行期间,定期检查中断。当内置函数input()或raw_input()正在等待输入时,键入的中断也会引发此异常。...在用户定义的基类中,当抽象方法需要派生类覆盖该方法时,抽象方法应引发此异常。 异常OSError 这个异常来源于EnvironmentError。...例如,err.object[err.start:err.end]给出编解码器失败的特定无效输入。 encoding 引起错误的编码的名称。 reason 描述特定编解码器错误的字符串。
内置异常可以由解释器或内置函数生成。 错误发生时,Python中会引发一些内置的异常。...关闭生成器或协程时,将引发GeneratorExit异常。...在sys.modules中找不到None时,也会引发此错误。 exception IndexError 当引用的序列超出范围时,引发IndexError。...,包括I / O故障(例如“找不到文件”或“磁盘已满”错误)时,将引发OSError异常。...在import语句中或在调用内置函数exec()或eval()时,或在读取初始脚本或标准输入时,可能会发生语法错误。
异常 描述:异常一般在ide无法直接检测出来,在我们执行到代码语句时,若有异常则会自动抛出 内置异常 BaseException 所有内置异常的基类 需要自定义异常类的时候不能继承它 Exception...的子类 AssertionError:assert断言失败时引发 AttributeError:属性引用(如: 实例对象.方法 )失败或赋值失败(如: 对象=值 ) ImportError:加载模块失败时引发...;是ImportError的子类 IndexError:取序列索引超出范围 KeyError:在字典中找不到指定的Key TypeError:当一个操作或函数被应用于类型不适当的对象时将被引发,传入参数的类型错误...:解码错误 OSError:调用操作系统函数时报错引发该异常,一般是I/O操作 OS 异常 以下所有异常都是OSError的子类 FileExistsError:文件已存在(如:创建一个文件) FileNotFoundError...# 其他异常 Unexpected error: 知识点 最后一个 不指定异常类时,可以作为通配符,若前面所有异常类都没有匹配上,则会自动匹配这个 except ,并执行里面代码,注意:最好要raise
断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...OSError 操作系统错误 WindowsError 系统调用失败 ImportError 导入模块/对象失败 LookupError 无效数据查询的基类 IndexError 序列中没有此索引(index...若为False,则中断程序并调用默认的异常处理器,同时输出指定的提示信息。...在使用类文件的流对象时,都需要单独的调用close()来关闭资源。...with..as语句能够实现在with语句块执行完后,自动的关闭文件。如果with语句块中触发异常,会调用默认的异常处理器处理,而且文件仍然能够正常关闭。
[这一步是可选的](译者注:这里指步骤5,因为守护程序不一定需要写文件) 6. 调用‘close()’关闭文件描述符0,1和2。...这样我们释放了从父进程继承的标 准输入,标准输出,和标准错误输出。我们没办法知道这些文描述符符可能 已经被重定向去哪里。...如果你认为有可能有打开的文件描 述符,你需要关闭它们,因为系统有一个同时打开文件数的限制。 7. 为标准输入,标准输出和标准错误输出建立新的文件描述符。...准确操作这些描述符是基于各自 爱好;比如说,如果你有一个日志文件,你可能希望把它作为标准输出和标 准错误输出打开,而把‘/dev/null’作为标准输入打开;作为替代方法...,你可 以将‘/dev/console’作为标准错误输出和/或标准输出打开,而‘/dev/null’作 为标准输入,或者任何其它对你的守护程序有意义的结合方法。
一、python异常 1、Python异常 python运行时发生错误称作异常 语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成...、计算或者输出结果需要的过程无法执行等 Python异常是一个对象,表示错误或意外情况 在Python检测到一个错误时,将触发一个异常 Python可以通过异常传导机制传递一个异常对象,...发出一个异常情况出现的信号 程序员也可以在代码中手动触发异常 Python异常也可以理解为:程序出现了错误而在正常控制流以外采取的行为 第一阶段:解释器触发异常,此时当前程序流将被打断...,如关闭文件或断开服务器连接 等 finally中的所有代码执行完毕后会继续向上一层引发异常 语法 try: try_suite finally: finally_suite 3...UnicodeError 在Unicode的字符串之间进行转换时发生的错误 ValueError 应用于某个对象的操作或函数,这个对象具有正确的类型,但确有不适
}; 返回值 bind() 函数成功时返回 0,失败时返回 -1 并设置 errno 来指示错误。...如果绑定成功,输出成功信息;否则,输出错误信息。 关闭套接字。...如果连接请求的数量超过此值,则新的连接请求可能会被拒绝。 返回值 listen() 函数成功时返回 0,失败时返回 -1 并设置 errno 来指示错误。...返回值 accept() 函数成功时返回一个新的套接字描述符(非负整数),用于与客户端通信;失败时返回 -1 并设置 errno 来指示错误。...返回值 成功时返回发送的字节数,失败时返回 -1 并设置 errno。 九、close close() 函数用于关闭一个打开的文件描述符,这里包括套接字。关闭一个套接字会释放它占用的所有资源。
1 守护进程 1.1 守护进程 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行。...5、关闭不再需要的文件描述符。根据具体情况来定。...6、某些守护进程可以打开/dev/null使其具有文件描述符0、1、2,这使任何一个试图读标准输入、写标准输出或标准错误的库例程都不会产生任何效果。...============' #在调用daemon_init函数前是可以使用print到标准输出的,调用之后就要用把提示信息通过stdout发送到日志系统中了 daemon_init('/dev/...tmp/daemon_error.log会记录错误运行日志,在/tmp/daemon_stdout.log会记录标准输出日志。
4、重定向孙子进程的标准输入流,标准输出流,标准错误到/dev/null #!...tmp/daemon_error.log会记录错误运行日志 # 在/tmp/daemon_stdout.log会记录标准输出日志。...2.修改子进程的工作目录 子进程在创建的时候会继承父进程的工作目录,如果执行的程序是在U盘里面,就会导致U盘不能卸载。...4.修改umask 由于umask会屏蔽权限,所有设定为0,这样可以避免读写文件时碰到权限问题 5.fork孙子进程,子进程退出 经过上面几个步骤后,子进程会成为新的进程组老大,可以重新申请打开终端,为了避免这个问题...,fork孙子进程处理, 6.重定向孙子进程的标准输入流,标准输出流,标准错误流到/dev/null 因为是守护进程,本身已经脱离了终端,那么标准输入流,标准输入流,标准错误流就没有什么意义了,所以都转向到
Scrapy的Request和Response对象用于爬网网站,在介绍Scrapy框架原理之前先具体讲解下Request和Response对象。...通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序,如下图15-1所示。 ?...10、dont_filter(boolean类型) 表示此请求不应由调度程序过滤。当您想要多次执行相同的请求时忽略重复过滤器时使用。小心使用它,或者你会进入爬行循环。默认为False。...11、errback(callable类型) 如果在处理请求时引发任何异常,将调用的函数。这包括失败的404 HTTP错误等页面。它接收一个Twisted Failure实例作为第一个参数。...xpath(query) 使用XPath选择器在Response中提取数据,更多内容访问爬虫课程(八)|豆瓣:十分钟学会使用XPath选择器提取需要的元素值 css(query) 使用CSS选择器在
# 属性引用或赋值失败 +-- BufferError # 无法执行与缓冲区相关的操作时引发 +-- EOFError # 当input()函数在没有读取任何数据的情况下达到文件结束条件...# 与连接相关的异常的基类 | | +-- BrokenPipeError # 另一端关闭时尝试写入管道或试图在已关闭写入的套接字上写入 | | +...| +-- ConnectTimeout(+-- Timeout) # (双重继承,下同)尝试连接到远程服务器时请求超时,产生此错误的请求可以安全地重试。...(+-- TypeError) # 此响应的内容已被使用 +-- RetryError # 自定义重试逻辑失败 +-- UnrewindableBodyError # 尝试倒回正文时...下面创建了一个MyError类,基类为Exception,用于在异常触发时输出更多的信息。
返回:成功=0;失败=-1,errno=错误号。...返回:成功=0;失败=-1,errno=错误号。...返回:成功=0;失败=-1,errno=错误号。...错误发生时返回一个-1并且设置相应的errno值。...可以设为下列值: ·0-------不允许继续接收数据 ·1-------不允许继续发送数据 ·2-------不允许继续发送和接收数据,均为允许则调用close () shutdown在操作成功时返回
Scrapy是一个web爬行框架,开发人员可以编写代码来创建spider,它定义了某个站点(或一组站点)将如何被爬行。...当你同时做某件事时,你要等到它完成后再去做另一件事,这是同步。当你异步执行某个任务时,可以在它完成之前转到另一个任务,这是异步。...库中的urllib2来实现此功能。...由于Scrapy不仅处理内容提取,还处理许多其他任务,如下载html,因此Scrapy的学习曲线要陡峭得多,因此需要阅读一些Scrapy教程或Scrapy文档来了解它的工作原理,并努力成为一名Scrapy...例如,如果你想要在你的爬虫项目中使用代理,你可以找到项目scrapy-proxies,利用代理帮助你从列表中使用随机代理发送HTTP请求,完成这些,你只需要改一些配置。
引言 使用 Python 开发 CLI 工具并打包发布到 PyPI 打包 Python 并发布到 PyPi 使用 Python 开发 CLI 工具 打包并发布 方式1: setup.py 参考: 在...尝试另外一种方式 curl curl -sSL https://install.python-poetry.org | python - 还是相同错误 失败 curl -sSL https://install.python-poetry.org...Python读取文件时出现UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x80 in position ......path: c:\users\yiyun\appdata\roaming\python\python38\site-packages\pyimaging-0.2.0.dist-info\RECORD 此错误也是相同解决方法...2] No such file or directory 参考: ERROR: Could not install packages due to an OSError: [Errno 2] No such
cerr: cerr是C++标准库中的标准错误流,它用于输出错误信息到标准错误设备(通常是显示器)。...如果失败,则返回 (key_t) -1 并设置 errno 以指示错误。...若设置为IPC_CREAT|IPC_EXCL(如果对象不存在则创建,存在的话出错返回) 返回值:成功时返回共享内存对象的标识符;失败时返回-1并设置errno。...返回值:成功时返回共享内存附加到进程的地址;失败时返回(void *)-1并设置errno。...返回值:成功时返回0;失败时返回-1并设置errno。
/n", buf, len); else { printf ("消息'%s'发送失败!...正确用法如下:/n/t/t%s IP地址 端口/n/t比如:/t%s 127.0.0.1 80/n此程序用来从某个 IP 地址的服务器某个端口接收最多 MAXBUF 个字节的消息", argv[0],...错误代码是%d,错误信息是'%s'/n", errno, strerror(errno)); else printf("对方退出了,聊天终止!...printf ("消息'%s'发送失败!...错误代码是%d,错误信息是'%s'/n", buffer, errno, strerror(errno)); break; } else printf ("消息:%s/t发送成功,共发送了%d
25.python 异常处理 最后更新于:2019-10-30 10:12:38 在python开发中,代码书写时难免有疏忽或者意向不到的bug,导致程序run的过程中有可能会直接崩溃;然后对于程序猿而言...— 常规错误的基类 5.StopIteration — 迭代器没有更多的值 6.GeneratorExit — 生成器(generator)发生异常来通知退出 7.StandardError — 所有的内建标准异常的基类...标记 15.EnvironmentError — 操作系统错误的基类 16.IOError — 输入/输出操作失败 17.OSError — 操作系统错误 18.WindowsError — 系统调用失败...— Unicode 解码时的错误 37.UnicodeEncodeError — Unicode 编码时错误 38.UnicodeTranslateError — Unicode 转换时错误 39.Warning...5.异常中的 else 如果判断完没有异常之后还想做其他事,就可以使用下面这样的else语句,注意:是在try中没有异常情况下,才会执行else之后的代码。
如下所示: 1.BaseException — 所有异常的基类 2.SystemExit — 解释器请求退出 3.KeyboardInterrupt — 用户中断执行(通常是输入^C) 4.Exception...— 常规错误的基类 5.StopIteration — 迭代器没有更多的值 6.GeneratorExit — 生成器(generator)发生异常来通知退出 7.StandardError — 所有的内建标准异常的基类...标记 15.EnvironmentError — 操作系统错误的基类 16.IOError — 输入/输出操作失败 17.OSError — 操作系统错误 18.WindowsError — 系统调用失败...— Unicode 解码时的错误 37.UnicodeEncodeError — Unicode 编码时错误 38.UnicodeTranslateError — Unicode 转换时错误 39.Warning...5.异常中的 else 如果判断完没有异常之后还想做其他事,就可以使用下面这样的else语句,注意:是在try中没有异常情况下,才会执行else之后的代码。
这是因为在发送信息阶段,recvfrom / sendto 等函数会自动将需要发送的信息转换为网络序列,接收信息时同样会将其转换为主机序列,所以不需要手动转换 如果使用的 UDP 协议,那么初始化服务器到此就结束了...4.日志输出 4.1.日志的重要性 在之前的编程经历中,如果我们的程序运行出现了问题,都是通过 标准输出 或 标准错误 将 错误信息 直接输出到屏幕上,debug 阶段这样使用没啥问题,但如果出错的是一个不断在运行中的服务...、标准输出、标准错误 返回值:成功返回 0,失败返回 -1 一般情况下,daemon() 函数的两个参数都只需要传递 0,默认工作在 / 路径下,默认重定向至 /dev/null /dev/null..., strerror(errno)); exit(CHDIR_ERR); } // 5、重定向标准输入输出错误 int fd = open("/dev/null...(errno)); exit(OPEN_ERR); } // 重定向标准输入、标准输出、标准错误 dup2(fd, 0); dup2(fd, 1);
领取专属 10元无门槛券
手把手带您无忧上云