ubuntu|linux下 如何用python python模拟按键输入

Ubuntu下创建虚拟独立的Python环境全过程
投稿:daisy
字体:[ ] 类型:转载 时间:
virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。本篇文章讲述如何在Linux以及Ubuntu中创建Python虚拟环境,以及Virtualenvwrapper的安装使用,需要的朋友可以参考借鉴,下面来一起看看吧。
虚拟环境是程序执行时的独立执行环境,在同一台服务器中可以创建不同的虚拟环境供不同的系统使用,项目之间的运行环境保持独立性而相互不受影响。例如项目可以在基于 Python2.7 的环境中运行,而项目 B 可以在基于Python3.x 的环境中运行。在 Python 中通过
工具管理虚拟环境。
另外在 win 或者 mac 上也是极力推荐安装虚拟环境来管理你的 Python 环境,虚拟环境能为你带来不少好处,比如在 Mac 上,自带的 Python 环境为 2.7 。而我们 Django 开发最合适的就是 3.4+。如此一来,你就要去 Google 如何卸载或者转至 Python3.4 的环境,还是比较麻烦。一旦我们有了虚拟环境之后,我们都可以在独立的环境中去安装我们需要的模块或者包的不同的版本,这样会带来很大方便。
在 Linux 系统中执行如下命令安装:
$ sudo pip install virtualenv
在 Ubuntu 中以及其衍生系统中执行如下命令安装即可:
$ sudo apt-get install python-virtualenv
安装成功之后,执行如下命令创建名称为 myvenv 的虚拟环境:
$ virtualenv myvenv
提示如下:
allen@ubuntu:~$ virtualenv myvenv
Running virtualenv with interpreter /usr/bin/python2
New python executable in myvenv/bin/python2
Also creating executable in myvenv/bin/python
Installing setuptools, pip...done.
source kvenv/bin/activate
具体过程如下,可以看到我们在当前环境下查看 Python 的版本,显示是在虚拟环境 myvenv 下的:
allen@ubuntu:~$ source myvenv/bin/activate
(myvenv)allen@ubuntu:~$ which python
/home/allen/myvenv/bin/python
当然退出当前虚拟环境如下命令即可:
deactivate
在激活了虚拟环境之后,你可以在这个环境中任意的Pip 啦:
pip install Pillow
Virtualenvwrapper
其为虚拟环境扩展包,用于管理虚拟环境,如列表所有虚拟环境,删除等等。
#安装virtualenv
(sudo) pip install virtualenv
#安装virtualenvwrapper
(sudo) pip install virtualenvwrapper
修改~/.bash_profile或其它环境变量相关文件(如 .bashrc(我的Ubuntu15.10 下的是这个) 或用 ZSH 之后的 .zshrc),添加以下语句:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
然后运行:
source ~/.bash_profile
mkvirtualenv zqxt:创建运行环境zqxt
workon zqxt: 工作在 zqxt 环境 或 从其它环境切换到 zqxt 环境
deactivate: 退出终端环境
rmvirtualenv ENV:删除运行环境ENV
mkproject mic:创建mic项目和运行环境mic
mktmpenv:创建临时运行环境
lsvirtualenv: 列出可用的运行环境
lssitepackages: 列出当前环境安装了的包
创建的环境是独立的,互不干扰,无需sudo权限即可使用 pip 来进行包的管理。
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具零基础学习python需要直接使用linux吗? - 知乎96被浏览18995分享邀请回答101 条评论分享收藏感谢收起sudo apt-get install python-setuptools
apt-get install libmysqld-dev
apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo easy_install mysql-python
#然后你就等着吧(到现在为止,我想要的包,还没遇到ubuntu源里找不到的)
Windows:先下载MySQL,然后安装。然后下载MySQLdb,然后安装,诶?为毛安装出错?google一下?缺东西啊,怎么配置啊?用pip的话,pip解决不了各种编译依赖的。算了,还是安装二进制版本吧。下载二进制安装包,安装。完事。这是MySQLdb-python,下次换成pyquery呢?换成lxml呢?遇到PIL呢?遇到XXX需要编译依赖的,咋办?这么办: 从这里可以下载到大多数常用的Python拓展的二进制Windows安装包(Windows下做Python开发的福音,还不快点赞)。但是,明天你遇到一个这里找不到的,就蛋疼去吧。我再随便举个例子:我用Tornado写Web应用,在linux/unix下,看日志彩色的,赏心悦目,还不需要配置啥。到Windows上了,cmd里日志黑白的,还不能选中,ctrl + C 之后,还不能停(必须得刷新一下页面)。啥,你说power shell?看着好别扭好吗?不能透明好吗?写代码也得照顾自己的心情,有省事的东西放着不用,非得自找麻烦,这不是跟自己过不去么。我才不会劝谁去用Linux呢,自己用着爽就行了,其实我只是懒,我就喜欢无脑apt-get。207 条评论分享收藏感谢收起查看更多回答Linux下使用Python捕获键盘输入 - CSDN博客
Linux下使用Python捕获键盘输入
在Linux下如何用Python监控键盘记录
在已经说到如何使用Python获取/dev/input目录下event对应的设备的名字。那么我们可以知道设备的名字,就可以通过名字知道哪些event对应的是键盘(可能不只一个键盘)。然后在/dev/input/下的对应的event就是负责处理键盘输入的数据的event。
evdev 输入事件驱动,为输入子系统提供了一个默认的事件处理方法。其接收来自底层驱动的大多数事件,并使用相应的逻辑对其进行处理。evdev 输入事件驱动从底层接收事件信息,将其反映到 sys 文件系统中,用户程序通过对 sys 文件系统的操作,就能够达到处理事件的能力。
这里使用一个叫做evdev的库进行处理,其原理是用C函数evdev_read()读取/dev/eventX设备中的buffer数组,里面存有input_event类型数据,下面内核上报的事件都会存在这里。
编写以下程序:
from evdev import InputDevice
from select import select
def detectInputKey():
dev = InputDevice('/dev/input/event4')
while True:
select([dev], [], [])
for event in dev.read():
print "code:%s value:%s" % (event.code, event.value)
if __name__ == '__main__':
detectInputKey()
其中select的作用是等待dev改变后再运行后面的代码,dev.read()返回的是buffer数组,里面存有input_event类型数据
使用root权限执行程序,通过观察可知。它的code就是输入的键值,它的value就是对应其状态,按下一个键时,它的value为1,松开时value为0。
那么稍微修改一下代码就可以知道输入值和状态了。
def detectInputKey():
dev = InputDevice('/dev/input/event4')
while True:
select([dev], [], [])
for event in dev.read():
if (event.value == 1 or event.value == 0) and event.code != 0:
print "Key: %s Status: %s" % (event.code, "pressed" if event.value else "release")
这样就实现了能够读取键盘输入的键和其状态的程序了。
执行程序,依次按下zxc:
假如要同时监控多个键盘输入的话,开多个线程监控就可以了。
本文已收录于以下专栏:
相关文章推荐
关于Linux的Input子系统详解请看这篇文章。思路:在某些情况下,我们想知道,event分别对应的是什么设备。虽然我们可以终端中通过命令获取详细信息,我们可以使用Python进行相关处理后获取ev...
使用pyhook模块可以很快地完成键盘及鼠标事件捕获,此模块可从http://sourceforge.net/projects/pyhook/files/pyhook/1.5.1/下载,API手册:h...
在学习python键盘响应时,按照教材写了一个小demo, 用于计算打字的速度。对于书上的代码做了调整,认为这样写是正确的。源代码如下:
# -*- coding: utf-8 -*...
在Linux下如何用Python监控键盘记录evdev 输入事件驱动,为输入子系统提供了一个默认的事件处理方法。其接收来自底层驱动的大多数事件,并使用相应的逻辑对其进行处理。evdev 输入事件驱动从...
#!/usr/bin/env python
# -*- coding: utf-8 -*-
tty, termios
import ...
为wxPython程序设置快捷键,代码如下:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''setkey for button'''
快捷键F1全屏:
class KeyEvent(wx.Frame):
def __init__(self, parent, id, title):
捕获键盘消息,可以很容易定制自己的快捷键(当然也可以采用其它办法),下面是一个小例子:
#-*- coding:utf-8 -*-
class KeyEvent(wx.Fram...
1.终端输入xev,可以测试键盘和鼠标
2.终端中输入sudo showkey -a,可以测试键盘
3.带图形界面的xkeycaps.之前两个系统自带,这个需要安装。终端中输入su...
装完搜狗后,键盘开始出现混乱,切换到英文输入法,输入双引号输出的是@符号,输入#号输出的是未知语言的字符。网上有的说在 system - keyboard - Input Source 下看看是否是非...
他的最新文章
讲师:吴岸城
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。

我要回帖

更多关于 ubuntu 使用python3.6 的文章

 

随机推荐