想在 macos 键盘脚本下做一个类似 win 下360球能查看 CPU,内存、网络的python脚本

97305人阅读
python(1)
首先尊重原创://setup_python_on_mac/
在mac上搭建python环境
这两天重新搞了下python的环境,发现好多地方还是容易忘记,因此有了这篇文章,以后方便查看。
一. 安装python
mac系统其实自带了一个python的执行执行环境,用来运行python还行,但是开发可能就不够了,因此我们需要重新安装python。这里有两种方案安装:
1.homebrew
brew install python
这个方案比较简单,如果出错的话可以给前面加sudo试试,这个安装的python可能不是最新版.
2.从官网下载安装
大家可以从下载安装最新版的python,安装比较无脑,一路按下去就OK,缺点是以后升级,卸载都得自己维护.
这两个方法安装的python的位置是不一样的,大家可以用:
which python
来查看安装位置.安装完成后在终端中键入python来验证安装是否成功.
二. 安装pip
这里好多文章中说要先安装easy_install,
其实是不用的.
1.我们先获取pip安装脚本:
wget https://bootstrap.pypa.io/get-pip.py
如果没有安装wget可以去将所有内容复制下来,新建get-pip.py文件,将内容拷进去就OK了.
sudo python get-pip.py
用python执行刚才获取的脚本,这里sudo可以选择使用,若遇到类似这个报错则必须加sudo:
Exception:
Traceback (most recent call last):
OSError: [Errno 13] Permission denied: 'XXX/pip-0.7.2-py2.7.egg/EGG-INFO/dependency_links.txt'
Storing debug log for failure in /Users/bilt/.pip/pip.log
安装成功后可以在终端中键入pip来检测,如果不行重启终端后尝试.
3.修改pip源
在天朝,由于功夫网的原因,使用pip安装一些模块会特别慢甚至无法下载,因此我们需要修改pip的源到国内的一些镜像地址,特别感谢国内无私奉献的组织~
首先进入HOME路径:
创建.pip目录:
mkdir .pip
创建pip.conf文件:
touch pip.conf
大家可以用自己喜欢的编辑器打开pip.conf文件,我现在使用的时v2ex的源,所以添加:
index-url = http:
大家可以把index-url的值设置为自己实际源的地址.
至此pip源修改成功,以后使用pip安装模块时都会从这个源去下载安装,大家可以自行测试一下.
三. 其他模块安装
1.Pillow/PIL
想用python处理图片,自然少不了PIL这个模块,
由于PIL长期没有更新了, 所以有了Pillow这个模块,
依赖于PIL, 新版的pip安装后会自带Pillow,
但是好像没有zlib模块, 所以会报错:
File &/Library/Python/2.7/site-packages/PIL/Image.py&, line 1105, in paste
File &/Library/Python/2.7/site-packages/PIL/ImageFile.py&, line 190, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File &/Library/Python/2.7/site-packages/PIL/Image.py&, line 389, in _getdecoder
raise IOError(&decoder %s not available& % decoder_name)
IOError: decoder zip not available
因此我们需要手动重新安装:
sudo pip install -U Pillow
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1873860次
积分:14002
积分:14002
排名:第699名
原创:182篇
转载:139篇
评论:335条
(1)(2)(1)(3)(5)(2)(2)(6)(4)(3)(14)(8)(5)(9)(4)(1)(8)(18)(7)(3)(3)(25)(6)(8)(3)(6)(6)(2)(19)(9)(10)(7)(11)(4)(1)(4)(3)(8)(18)(14)(6)(6)(11)(7)(21)违法和不良信息举报电话:183-
举报邮箱:
Copyright(C)2017 大不六文章网Python windows下获取MAC地址的一种方法
1187次浏览
我最近有一个项目,使用Python在win32下开发一个COM组建,该COM组建其中一个方法是获取本地电脑的MAC地址。
需求很简单,虽然我是Python新手中的新手,但我还是会使用搜索引擎进行搜索。
百度一下,发现大部分都介绍使用import UUID获取MAC地址,或使用os.popen(&ipconfig /all&)的方式获取。而后者容易受到操作系统中英文环境影响。
如这篇文章:/Jerryshome/archive//2269365.html
所以,我很乖的使用了被大部分网页推荐的第一种方法,
def get_mac_address():
import uuid
node = uuid.getnode()
mac = uuid.UUID(int = node).hex[-12:]
return mac
很幸运,直接能用。
然后用C++编写一个访问COM的程序。
但问题来了(我不会问学挖掘机哪家强的-_-///)
居然弹出C RUNTIME !!
---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Runtime Error!
Program: E:\Blender Foundation\blender.exe
An application has made an attempt to load the C runtime library incorrectly.
Please contact the application's support team for more information.
WINXP/WIN7 32位均出现该问题!!
经过一通科学上网发现,在如下网页发现:
https://developer.blender.org/T27666
导入UUID后,被C/C++等程序调用PYTHON程序,均会提示该问题,该bug未fixed掉,目前未有好的解决方案。原因是:ctypes loads wrong version of C runtime, leading to error message box from system
官网的buglist为:http://bugs.python.org/issue17213
OK,居然官网都没法解决,那只能换种方法了。
有经过一轮科学上网后,找到netifaces库,该方法和UUID一样,能通用的获取MAC地址。
库地址:https://pypi.python.org/pypi/netifaces
里面有相关教程,很简单,我贴出我写的demo程序,如下:
def networkinfo(self):
import netifaces
devlist = []
tempList = []
tmpdict = {}
devices = netifaces.interfaces()
for dev in devices:
devlist.append(dev)
for devinfo in devlist:
infos = netifaces.ifaddresses(devinfo)
if len(infos) & 2:
ip = infos[netifaces.AF_INET][0]['addr']
if ip != '':
if ip != '127.0.0.1':
tmpdict[&ip&] = ip
tmpdict[&mac&] = infos[netifaces.AF_LINK][0]['addr']
tempList.append(tmpdict)
return tempList
我这里获取了本地电脑的网络IP和该IP的网卡MAC地址。细节不做介绍了,大家可以看官网介绍。
您可能也会对以下文章感兴趣
QQ : 341470
Friend Link
New Member声明:360百科词条的编辑和创建无需支付费用,坚决打击账号买卖、传播虚假信息、恶意篡改内容、冒充官方收费的行为。
义项指多义词的不同概念,如的义项:网球运动员、歌手等;的义项:冯小刚执导电影、江苏卫视交友节目等。
所属类别 :
生活日用品|科技产品
生活日用品|科技产品
Python(英语发音:/'pa?θ?n/), 是一种面向对象、解释型,由于1989年底发明,第一个公开发行版发行于1991年,Python 源代码同样遵循 GPL(GNU General Public License)协议。Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。
外文名称 python
别名 蟒蛇语言
发行时间 1991年
设计者 Guido van Rossum
最新版本 3.3.1, 3.2.4, 2.7.5
荣誉 2010年度编程语言
Python(KK 英语发音:/'pa?θɑn/, DJ 英语发音:/'paiθ?n/)是一种面向对象、直译式计算机语言,由Guido van Rossum于1989年底发明。第一个公开发行版发行于1991年。Python语法简捷而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。
简单:Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。易学:Python极其容易上手,因为Python有极其简单的语法。免费、开源:Python是FLOSS(自由/开放源码软件)之一。使用者可以自由地发布这个软件的拷贝、阅读它的、对它做改动、把它的一部分用于新的自由软件中。FLOSS是基于一个团体分享知识的概念。高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。可移植性:由于它的开源本质,Python已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。这些平台包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian以及Google基于linux开发的android平台。解释性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的使用的语言(代码,即0和1)。这个过程通过和不同的标记、选项完成。运行程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行 程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。面向对象:Python既支持面向过程的也支持面向对象的编程。在“”的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在“面向对象”的语言中,程序是由数据和功能组合而成的对象构建起来的。可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括、文档生成、、、数据库、网页、CGI、FTP、、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。规范的代码:Python采用强制缩进的方式使得代码具有较好可读性。而Python语言写的程序不需要编译成二进制代码。
Python 是一种不受局限、跨平台的开源,它功能强大且简单易学。因而得到了广泛应用和支持。ArcGIS 9.0 社区中引入了 Python。此后,Python 被视为可供地理处理用户选择的脚本语言并得以不断发展。每个版本都进一步增强了 Python 体验,从而为您提供更多的功能以及更丰富、更友好的 Python 体验。ESRI 已将 Python 完全纳入 ArcGIS 中,并将其视为可满足我们用户社区需求的语言。下面仅介绍 Python 的部分优势:易于学习,非常适合初学者,也特别适合专家使用可伸缩程度高,适于大型项目或小型的一次性程序(称为)可移植,跨平台可嵌入(使 ArcGIS 可脚本化)稳定成熟用户社区规模大Python 已延伸到
中,成为了一种用于进行数据分析、数据转换、数据管理和地图自动化的语言,因而有助于提高工作效率。
强制缩进:这也许不应该被称为局限,但是它用缩进来区分语句关系的方式还是给很多初学者带来了困惑。单行语句和命令行输出问题:很多时候不能将程序连写成一行,如for i in sys.path:print i。而perl和awk就无此限制,可以较为方便的在shell下完成简单程序,不需要如Python一样,必须将程序写入一个.py文件。
系统编程:提供API(Application Programming Interface),能方便进行和管理,Linux下标志性语言之一,是很多理想的编程工具。图形处理:有PIL、Tkinter等图形库支持,能方便进行图形处理。数学处理:NumPy扩展提供大量与许多标准数学库的接口。文本处理:python提供的re模块能支持,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。数据库编程:程序员可通过遵循Python DB-API(数据库应用程序编程接口)规范的模块与Microsoft SQL Server,Oracle,Sybase,DB2,Mysql、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。网络编程:提供丰富的模块支持sockets编程,能方便快速地开发分布式。很多大规模计划例如Zope,Mnet 及BitTorrent. Google都在广泛地使用它。Web编程:应用的开发语言,支持最新的XML技术。多媒体应用:Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维。PyGame模块可用于编写。
Python的创始人为Guido van Rossum。1989年圣诞节期间,在,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。就这样,Python在Guido手中诞生了。实际上,第一个实现是在Mac机上。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。
Python在设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。设计者开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。这在由Tim Peters写的python格言(称为The Zen of Python)里面表述为:There should be one-- and preferably only one --obvious way to do it. 这正好和Perl语言(另一种功能类似的高级动态语言)的中心思想TMTOWTDI(There's More Than One Way To Do It)完全相反。 Python的作者有意的设计限制性很强的语法,使得不好的编程习惯(例如的下一行不向右缩进)都不能通过编译。其中很重要的一项就是Python的缩进规则。一个和其他大多数语言(如C)的区别就是,一个模块的界限,完全是由每行的首字符在这一行的位置来决定的(而C语言是用一对花括号{}来明确的定出模块的边界的,与字符的位置毫无关系)。这一点曾经引起过争议。因为自从C这类的语言诞生后,语言的语法含义与字符的排列方式分离开来,曾经被认为是一种程序语言的进步。不过不可否认的是,通过强制程序员们缩进(包括if,for和函数定义等所有需要使用模块的地方),Python确实使得程序更加清晰和美观。
Python在执行时,首先会将.py文件中的源代码编译成Python的byte code(字节码),然后再由Python Virtual Machine(Python )来执行这些编译好的byte code。这种机制的基本思想跟Java,.NET是一致的。然而,Python Virtual Machine与Java或.NET的Virtual Machine不同的是,Python的Virtual Machine是一种更高级的Virtual Machine。这里的高级并不是通常意义上的高级,不是说Python的Virtual Machine比Java或.NET的功能更强大,而是说和Java 或.NET相比,Python的Virtual Machine距离真实机器的距离更远。或者可以这么说,Python的Virtual Machine是一种抽象层次更高的Virtual Machine。基于C的Python编译出的字节码文件,通常是.pyc格式。
部分工具列表名称功能TkinterPython默认的图形界面接口。Tkinter是一个和Tk接口的Python模块,Tkinter库提供了对Tk API的接口,它属于Tcl/Tk的GUI工具组。PyGTK用于python GUI程序开发的GTK+库。GTK就是用来实现GIMP和Gnome的库。PyQt用于python的Qt开发库。QT就是实现了KDE环境的那个库,由一系列的模块组成,有qt, qtcanvas, qtgl, qtnetwork, qtsql, qttable, qtui and qtxml,包含有300个类和超过5750个的函数和方法。PyQt还支持一个叫qtext的模块,它包含一个QScintilla库。该库是Scintillar类的Qt接口。wxPythonGUI编程框架,熟悉MFC的人会非常喜欢,简直是同一架构(对于初学者或者对设计要求不高的用户来说,使用Boa Constructor可以方便迅速的进行wxPython的开发)PILpython提供强大的图形处理的能力,并提供广泛的图形支持,该库能进行图形格式的转换、打印和显示。还能进行一些图形效果的处理,如图形的放大、缩小和旋转等。是Python用户进行图象处理的强有力工具。Psyco一个Python代码加速度器,可使Python代码的执行速度提高到与编译语言一样的水平。xmpppyJabber采用开发的XMPP协议,Google Talk也是采用XMPP协议的IM系统。在Python中有一个xmpppy模块支持该协议。也就是说,我们可以通过该模块与Jabber服务器通信,是不是很Cool。PyMedia用于多媒体操作的python模块。它提供了丰富而简单的接口用于多媒体处理(wav, mp3, ogg, avi, divx, dvd, cdda etc)。可在Windows和Linux平台下使用。PmwPython megawidgets,Python超级GUI组件集,一个在python中利用Tkinter模块构建的高级GUI组件,每个Pmw都合并了一个或多个Tkinter组件,以实现更有用和更复杂的功能。PyXML用Python解析和处理XML文档的工具包,包中的4DOM是完全相容于W3C DOM规范的。它包含以下内容:xmlproc: 一个符合规范的XML解析器。Expat: 一个快速的,非验证的XML解析器。还有其他和他同级别的还有 PyHtml PySGML。PyGame用于多媒体开发和游戏软件开发的模块。PyOpenGL模块封装了“OpenGL应用程序编程接口”,通过该模块python程序员可在程序中集成2D和3D的图形。NumPy、NumArray、SAGENumArray是Python的一个扩展库,主要用于处理任意维数的固定类型数组,简单说就是一个矩阵库。它的底层代码使用C来编写,所以速度的优势很明显。SAGE是基于NumPy和其他几个工具所整合成的数学软件包,目标是取代Magma, Maple, Mathematica和Matlab 这类工具。MySQLdb用于连接My。还有用于zope的ZMySQLDA模块,通过它就可在zope中连接mysql数据库。Python-ldap提供一组面向对象的API,可方便地在python中访问ldap目录服务,它基于OpenLDAP2.x。smtplib发送电子邮件。ftplib定义了FTP类和一些方法,用以进行的ftp编程。如果想了解ftp协议的详细内容,请参考RFC959。
Python的3.0版本,在开发阶段被称为Python 3000,或简称Py3k。相对于Python的早期版本,这是一个较大的。为了不带入过多的累赘,Python 3.0在设计的时候就没有考虑向下兼容。许多针对早期Python版本设计的程序都无法在Python 3.0上正常运行。为了照顾现有程序,Python 2.6作为一个过渡版本,基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移。基于早期Python版本而能正常运行于Python 2.6并无警告的程序可以通过一个2 to 3的转换工具无缝迁移到Python 3.0。Python 3.0的变化主要在以下几个方面:部分函数和语句的改变:最引人注意的改变是print语句没有了,取而代之的是print函数。字符串和:类似,str类表示一个,代替了早期版本的unicode类。而一堆字节则用类似b"abc"的语法创建,用bytes类表示。
●IDLE:Python内置IDE (随python提供)●Komodo和Komodo Edit:后者是前者的免费精简版●PythonWin:ActivePython或pywin32均提供该IDE,仅适用于Windows●SPE(Stani's Python Editor):功能较多的自由软件,基于wxPython●Ulipad:功能较全的自由软件,基于wxPython;作者是中国Python高手limodou●WingIDE:可能是功能最全的IDE,但不是自由软件(教育用户和开源用户可以申请免费key)●Eric:基于PyQt的自由软件,功能强大。全名是:The Eric Python IDE●DrPython●PyScripter:使用Delphi开发的轻量级的开源Python IDE, 支持Python2.6和3.0。●PyPE:一个开源的跨平台的PythonIDE。●bpython: 类Unix操作系统下使用curses库开发的轻量级的Python解释器。语法提示功能。
●eclipse + pydev:方便调试程序●emacs:自带python支持,自动补全、refactor等功能需要插件支持●Vim: 最新7.3版编译时可以加入python支持,提供python代码自动提示支持●Visual Studio 2003 + VisualPython:仅适用Windows,已停止维护,功能较差●SlickEdit●Visual Studio 2010 + Python Tools for Visual Studio●TextMate●Netbeans IDE另外,诸如、UltraEdit、PSPad等通用的软件也能对Python代码编辑提供一定的支持,比如代码自动着色、注释等,但是否够得上集成开发环境的水平,尚有待评估。
1. 运行速度慢。2. 国内市场较小。3. 中文资料匮乏(好的python中文资料屈指可数)。托社区的福,有几本优秀的教材已经被翻译了,但入门级教材多,高级内容还是只能看英语版。4. 构架选择太多。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
使用Python创建第一个CGI程序,文件名为hello.py,文件位于/var/www/cgi-bin目录中,内容如下,修改文件的权限为755:#!/usr/bin/env python print("Content-type:text/html\r\n\r\n") print("&html&") print("&head&") print("") print("&/head&") print("&body&") print("&h2&Hello World! This is my first CGI program&/h2&") print("&/body&") print("&/html&")以上程序在浏览器访问显示结果如下:Hello World! This is my first CGI program这个的hello.py脚本是一个简单的Python脚本,脚本第一的输出内容"Content-type:text/html\r\n\r\n"发送到浏览器并告知浏览器显示的内容类型为"text/html"。
1. python终极学习站点
在Python中学习机器学习的四个步骤
1、首先你要使用书籍、课程、视频来学习 Python 的基础知识2、然后你必需掌握不同的模块,比如 Pandas、Numpy、Matplotlib、NLP (自然语言处理),来处理、清理、绘图和理解数据。3、接着你必需能够从网页抓取数据,无论是通过网站API,还是网页抓取模块Beautiful Soap。通过网页抓取可以收集数据,应用于机器学习算法。4、最后一步,你必需学习机器学习工具,比如 Scikit-Learn,或者在抓取的数据中执行机器学习算法(ML-algorithm)。
-- 应用服务器- 内容管理系统Django- 鼓励快速开发的Web应用框架- 国人开发的轻量级Web框架TurboGears- 另一个Web应用快速开发框架Twisted--Python的网络应用程序框架Python Wikipedia Robot Framework- MediaWiki的机器人程序MoinMoinWiki- Python写成的程序- Python 微Web框架tornado- 非阻塞式服务器Webpy- Python 微Web框架Bottle- Python 微Web框架- 网络游戏EVE大量使用Python进行开发Reddit - 社交分享网站Dropbox - 文件分享服务Pylons - Web应用框架TurboGears - 另一个Web应用快速开发框架Fabric - 用于管理成百上千台Linux主机的程序库Trac - 使用Python编写的BUG管理系统Mailman - 使用Python编写的邮件列表软件Mezzanine - 基于Django编写的内容管理系统Blender - 以C与Python开发的开源3D绘图软件
{{each(i, video) list}}
{{if list.length > 8}}
查看全部 ${list.length} 期节目
{{if _first}}
内容来源于
百科兴趣圈
{{if list && list.length}}
360百科致力于成为最为用户所信赖的专业性百科网站。人人可编辑,让求知更简单。}

我要回帖

更多关于 macos python3 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信