美文网首页
如何在没有root 权限的集群/服务器上安装pypy

如何在没有root 权限的集群/服务器上安装pypy

作者: 小光amateur | 来源:发表于2019-07-17 10:41 被阅读0次

前言

众所周知,python的一个大缺陷就是运行速度缓慢,尤其是在处理for循环的时候,要么需要使用列表推导,消耗内存来换取速度,要么就使用jit来提速,现在,我们可以使用pypy这个新的python程序来运行我们的python脚本来提速。

官方只提供了针对ubuntu和redhat的二进制版本,这对centos来说就要用源码编译安装,而对于没有root权限的用户来说,简直就是噩梦。

方法

先下载安装miniconda3

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O Miniconda3-latest-Linux-x86_64.sh

bash Miniconda3-latest-Linux-x86_64.sh -b -p ~/anaconda_ete/

创建python3虚拟空间

conda create -n pypy3 python==3.6

source activate pypy3

去anaconda 官方查看最新的pypy版本

搜索

为conda 添加清华大学源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

#conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

#bioconda
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

安装pypy3.6

conda install pypy3.6

安装pypy版本的pip

pypy3 -m ensurepip

安装第三方模块

#方法和python3一样
pypy3 -m pip install numpy
#pandas 不用试了,安装会报错
pypy3 -m pip install pandas 

测试下速度的差距

主要是通过 蒙特卡罗法来计算圆周率

先搞一个perl脚本

#pi.pl
$time1 = time();
foreach (1..20000000) {
  my($x, $y) = (rand(), rand()); 
  if(sqrt($x ** 2 + $y ** 2) < 1) {
    $total += 1;
  } 
}
$pi = 4.0 * $total / 20000000;
$time2 = time();

print "Pi = " , $pi, " time = ", $time2 - $time1;

再搞一个python脚本

#pi.py
import random
import datetime
import math

starttime = datetime.datetime.now()
total = 0
for i in xrange(20000000):
    x, y = random.random(), random.random()
    if math.sqrt(x ** 2 + y ** 2) < 1:
        total += 1
pi = 4.0 * total / 20000000
endtime = datetime.datetime.now()
print("pi = ", pi , " time = ", (endtime - starttime).seconds)

再搞一个C脚本

#include <stdio.h>
#include <stdlib.h>
#include <time.h> 
#include <math.h>

int main() {
  time_t start_time, end_time; 
  double elapsed_time; 
  double x, y, pi;
  long i , total;
  total = 0;
  srand((unsigned)time(0));
  time(&start_time);
  for(i = 0 ; i < 20000000; i ++ ) {
    x = rand() / (double)(RAND_MAX);
    y = rand() / (double)(RAND_MAX);    
    if (sqrt(x * x + y * y) < 1) {
      total += 1;
    }      
  }
  pi = 4.0 * total / 20000000; 
  time(&end_time); 
  elapsed_time = difftime(end_time, start_time);
  printf(" total = %d, pi = %f, time = %f", total ,pi, elapsed_time);   
}

分别测试运行时间,我的结果是pypy最快。

相关文章

  • 如何在没有root 权限的集群/服务器上安装pypy

    前言 众所周知,python的一个大缺陷就是运行速度缓慢,尤其是在处理for循环的时候,要么需要使用列表推导,消耗...

  • 非root下安装zsh+oh-my-zsh

    在服务器上,个人没有root权限,无法直接安装应用。以下是安装zsh与oh-my-zsh的步骤。 Download...

  • DMDSC实时数据守护搭建

    1 前置条件 服务器已安装2节点DSC集群 DSC节点服务器有root权限 DSC节点服务器防火墙已关闭或开放...

  • 阿里云监控插件安装

    Linux Agent安装说明 安装 直接复制以下命令后在服务器上使用root权限运行即可。 #64位 sudo ...

  • 如何在CentOS 7上安装Nginx

    转自:如何在CentOS 7上安装Nginx - CSDN博客 本教程中的步骤要求用户拥有root权限 第一步 -...

  • Linux 无root权限安装ZSH

    服务器没有zsh,不能忍。 下载 解压 编译 配置安装oh-my-zsh 启用 有root权限:chsh -s /...

  • 无root无网络,自定义目录装nginx

    公司服务器,已经装好gcc等必要环境,问题就是没有root权限,没有网络,要安装一个测试环境的Nginx,不是...

  • Anaconda安装R语言

    1.直接按照R未遂 一直以来想在服务器上安装R,可惜没有root权限,一直没有安装成功,期间我尝试过多种方法进行按...

  • 非root权限scp免密传输

    环境说明 有两台服务器,client端没有root权限,接收端server有root权限。现在需要从client端...

  • nfs的安装与使用 记录

    一、服务器的安装与配置 安装服务: 配置共享目录: 追加信息解释: 代表任意iprw 读写权限no_root_sq...

网友评论

      本文标题:如何在没有root 权限的集群/服务器上安装pypy

      本文链接:https://www.haomeiwen.com/subject/mmpekctx.html