最近看到pypy可以提高python的运行速率到很变态的境地,加之现在ryu发现拓扑的能力有限,不能满足实验要求,所以想将其试着在pypy上运行

部署pypy在virtualenv,在学python初期,就听闻python的三大神器:pip、virtualenv和fabric,前面只是尝试了下virtualenv,这次将pypy部署在了一个虚拟环境中,感觉到了virtualenv极大的便利,过程如下:

  1. 安装virtualenv
    virtualenv安装比较简单,直接使用下面命令:

    pip install virtualenv
    
  2. 下载pypy
    pypy的官网下载地址为:http://pypy.org/download.html,里面提供了各种版本和平台的pypy,但是没有windows 64bit的,原因在于CPython和Pypy对于int数据类型的长度定义不同,详细的可参见官网说明,但是stackoverflow上面有人说win 32bit的pypy可以很好的运行在win 64bit上了(网址),我没有尝试,大家可以尝试下,如果不行,所以最好在linux下使用,或者将python的版本换成32位的,选择适合自己环境的pypy进行下载。然后进行解压,我下载的为tar.bz2格式的压缩文件,所以用下面的命令进行解压,按照习惯,我就将其解压到home目录下。

    tar -vxjf pypy-4.0.0-linux64.tar.bz2
    
  3. 在虚拟环境中生成pypy编译环境
    使用如下命令(注意选择自己pypy解压缩后的目录):

    virtualenv -p /home/cotyb/pypy/bin/pypy pypy-env
    

    这样就创建了一个名为pypy-env,解释器为pypy的虚拟环境,然后cd pypy-env,跳转到虚拟环境所在文件夹,执行. bin/activate激活虚拟环境,可以执行python或者pypy来看提示信息,发现pypy是否已经配置成功
    默认情况下,虚拟环境会依赖系统环境中的site packages,即系统中安装好的第三方库也会安装在虚拟环境中,如果不想依赖这些库,可以加上参数:--no-site-packages,如果想退出虚拟环境,可以使用deactivate

  4. 激活之后,终端提示符前面多了个括号,里面是自己创建的虚拟环境,类似(pypy-env),然后用git clone git://github.com/osrg/ryu.git下载ryu,git tag和git checkout可以选择自己想用的ryu版本,如果不会用,可以参见此博客。最后进行ryu安装。之后就可以运行自己的程序了。

我用Mininet建立了depth=8的tree拓扑,用pypy执行发现拓扑的命令,很多情况下还是会卡住,不能完全发现拓扑,卡在100个交换机以下,但是在10多次实验中有2次发现了完全的拓扑

同时用pypy执行了一些其他的运算测试,包括文件处理,纯运算等,发现pypy的效率甚至是低于python的,等有时间了再详细了解pypy。

用pypy运行ryu的更多相关文章

  1. Java和PyPy速度对比

    Java和PyPy运行同一段代码,对比结果. Java代码: package javatest; import java.text.DecimalFormat; import java.util.Da ...

  2. SDN学习之RYU源码安装

    近些天开始接触SDN,即软件定义网络的学习,由于是初学者,想通过写博客来分享自己对sdn学习中所使用的ryu以及mininet仿真软件. Mininet源码安装: 尽管网上对mininet的安装教程很 ...

  3. ryu 下发流表配置

    资料链接:http://ryu.readthedocs.io/en/latest/app/ofctl_rest.html 运行ryu进程: ryu-manager --ofp-tcp-listen-p ...

  4. pypy安装与使用

    首先安装pypy环境: yum install pypy -y yum install pypy-devel -y 然后安装pypy的pip:wget https://bootstrap.pypa.i ...

  5. 通过源码安装RYU控制器

    目录 安装 测试 安装 安装pip3 sudo apt-get install python3-pip 获取ryu源码 git clone https://github.com/osrg/ryu.gi ...

  6. 实验6:开源控制器实———RYU

    一.实验目的 1.能够独立部署RYU控制器: 2.能够理解RYU控制器实现软件定义的集线器原理: 3.能够理解RYU控制器实现软件定义的交换机原理. 二.实验环境 Ubuntu 20.04 Deskt ...

  7. Python Day02

    Python 代码执行流程: 编译 --> 执行 源代码  -->  字节码  -->  机器码  --> CPU执行 python 先将自己的源代码,编译成Python 字节 ...

  8. Docker部署SDN环境

    2014-12-03 by muzi Docker image = Java class Docker container = Java object 前言 5月份的时候,当我还是一个大学生的时候,有 ...

  9. Python全栈之路-----基础篇

    Python诞生 Python是著名的”龟叔“Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. Python语法很多来自C,但又受到 ...

随机推荐

  1. Procedure for installing and setting Sun JDK Java on Default Amazon Linux AMI

    # First verify the version of Java being used is not SunJSK. java -version   # Get the latest Sun Ja ...

  2. (一)Solr——简介和安装配置

    1. solr简介 1.1 Solr是什么 Solr是apache的顶级开源项目,它是使用java开发 ,基于lucene的全文检索服务器. Solr和lucene的版本是同步更新的,最新的版本是7. ...

  3. jsp 普通变量与jQuery变量之间的转换

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. jmeter ---测试TCP服务器/模拟发送TCP请求

    jmeter测试TCP服务器/模拟发送TCP请求 jmeter测试TCP服务器,使用TCP采样器模拟发送TCP请求. TCP采样器:打开一个到指定服务器的TCP / IP连接,然后发送指定文本并等待响 ...

  5. Apache 虚拟目录和默认首页的设置

    Apache虚拟目录和默认首页的设置,用apache服务器的朋友必须要懂的. 虚拟目录 1.找到"conf/httpd.conf" 文件 2.在节点:<IfModule al ...

  6. Java自带命令详解

    1. 背景 给一个系统定位问题的时候,知识.经验是关键基础,数据(运行日志.异常堆栈.GC日志.线程快照[threaddump / javacore文件].堆转储快照[heapdump / hprof ...

  7. atitit.jndi的架构与原理以及资源配置and单元测试实践

    atitit.jndi的架构与原理以及资源配置and单元测试实践 1. jndi架构 1 2. jndi实现原理 3 3. jndi资源配置 3 3.1. resin  <database> ...

  8. linux上定时备份mysql数据库

    定时备份数据库 /usr/sbin/backupmysql timestamp=`date +"%Y-%m-%d-%H-%M-%S"` mysqldump -uroot -p'12 ...

  9. linux命令之高级使用 find

    1. 想查看当前文件夹及子文件夹里有没有文件名为“abc”的文件 # find . -name abc . :表示当前目录 -name:表示要根据名称查找 2. 想查看当前文件夹及子文件夹里有没有”x ...

  10. 利用RPM和YUM安装软件

    安装软件事root的事,所以必须要以root身份登录! 假设我要安装一个文件名为rp-pppoe-3.5-32.1.i386.rpm的文件, 那么我们可以这样: rpm安装软件 rpm -ivh pa ...