windows环境不能用的函数你知道那些?
白羽 2018-05-28 来源 :网络 阅读 785 评论 0

摘要:Python学习过程中,经常发现教程上讲的函数在本机上会报错: AttributeError: 'module' object has no attribute '***' 1、有没有写错函数名;2、是不是忘记引用这个函数了?3、检查下这个插件模块是否安装了?...(如果你很认同,就说明你找对地方了) 本篇文章将为大家介绍学习Python过程中windows环境的“坑”。 希望本文对大家学Windows有所帮助


一、Before

Python学习过程中,经常发现教程上讲的函数在本机上会报错:

AttributeError: 'module' object has no attribute '***'

作为一个初学者,就会很懵逼的检查: 1、有没有写错函数名;2、是不是忘记引用这个函数了?3、检查下这个插件模块是否安装了?...(如果你很认同,就说明你找对地方了)

本篇文章将为大家介绍学习Python过程中windows环境的“坑”。

二、正文

由于和操作系统相关,所以这些“坑”来源于Python中的os模块~~~

1、os.uname()

python提供了查看当前操作系统的函数:

    os.name()

    #output:

    #nt--Windows系统

    #posix--Linux、Unix或Mac OS X

python还提供了一个查看操作系统详细信息的函数,就是os.uname(),在mac环境下执行输出如下结果。

os.uname()

#output:(sysname, nodename, release, version, machine)#('Darwin', 'iMac.local', '13.3.0', 'Darwin Kernel Version 13.3.0: Tue Jun  3 21:27:35 PDT 2014; root:xnu-2422.110.17~1/RELEASE_X86_64', 'x86_64')

但是在windows上,就会报错没有这个模块。
解决方案:
(1)获取hostname:socket.gethostname() 或 socket.gethostbyaddr(socket.gethostname())
(2)使用platform.uname()

import platform

print platform.uname()

#output:#(system='Windows', node='hongjie-PC',release='7', version='6.1.7601', machine='x86', processor='x86 Family 16 Model 6 Stepping 3, AuthenticAMD')

2、os.fork()

  os.fork()  #新建进程

  #output:pid

Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。
子进程永远返回0,而父进程返回子进程的ID。这样做的理由是,一个父进程可以fork出很多子进程,所以,父进程要记下每个子进程的ID,而子进程只需要调用getppid()就可以拿到父进程的ID。

解决方案:
1、使用Python的multiprocessing模块的Process来创建进程

    import multiprocessing

    import os

def runChildProcess(name):

    print "Run Child Process,pname = {} , pid = {}".format(name,os.getpid())

if __name__ == '__main__':

    print "Run Parent Process,pid = {}".format(os.getpid())

    child = multiprocessing.Process(target=runChildProcess,args=('test',))

    print "+"*20

    child.start()

    child.join()

    print "-"*20

执行结果:Run Parent Process,pid = 5540

++++++++++++++++++++Run Child Process,pname = test , pid = 712

--------------------


本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标系统运维之Windows频道!


本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程