Ubuntu + PyPy3 + Sublime 运行Python
一、命令安装
一般情况下,在Linux系统下安装软件都是使用命令进行安装,但是安装pypy时,使用如下命令,安装的是pypy2。
sudo add-apt-repository ppa:pypy/ppa ## 安装pypy sudo apt-get update # 更新pypy sudo apt-get install pypy pypy-dev ## 开发PyPy Python实现
有时候,上面第一步就可能因为网络等原因出错。其实可以直接使用linux的普通命令安装,它安装的是根据Ubuntu系统编译好的pypy2(Python2.7.10,Pypy5.1.2)。
sudo apt-get install pypy
二、解压缩包安装
根据linux安装python2和python3的安装命令区别,把pypy改成pypy3应该就可以安装pypy3,但实际上不行。我没有找到安装pypy3的命令。
pypy官网上提供了压缩文件,将压缩文件解压即可直接运行。
1、解压缩
tar -xzvf /home/下载/pypy2-v6.0.0-linux64.tar.bz2 # 解压缩 sudo mv '/home/下载/pypy2-v6.0.0-linux64' /usr/lib/ #将解压缩后的文件移动到想要放的文件夹下
上面第一句,我的pypy2的压缩包放在下载文件夹里。
在第二句中,输入mv和空格后,可以将解压缩的文件夹拖到终端窗口,则终端窗口自动生成该文件夹的路径,然后再添加空格以及想要放置的位置。我把解压缩的文件夹放在/usr/lib/下,因为我的安装的软件基本都在这个目录下。
2、在sublime中配置解释器
在终端输入subl(即sublime前四个字母)打开sublime。
subl # 打开sublime的命令
在sublime中依次选择Tools——Build System——New Build System,清空弹出的页面的内容,重新输入以下内容,cmd中第一个字符串是其bin的路径。
{ "cmd": ["/usr/lib/pypy3-v6.0.0-linux/bin/pypy3","-u","$file"], "file_regex": "^[ ]*File \"(...*?)\", line ([0-9]*)", "selector": "source.python", }
直接保存,弹出保存界面,其中默认文件名为untitled.sublime-build,可以将untitled更改为Pypy3,后面的内容不能更改,默认路径也不能更改。
如果想再添加pypy2,则再添加一个build system,将cmd中的路径设为pypy2的路径即可。
创建一个python程序,在顶端选择Tools——Build System——Pypy3,然后正常运行即可。
3、配置永久环境变量
上面的步骤,只能使pypy3在sublime中运行,在终端输入pypy3的任何命令都会提示未找到'pypy3'命令。例如输入版本命令:
pypy3 --version
此时,需要配置环境变量。在linux中有两种环境变量,一种是临时环境变量,在终端打开时创建,当终端关闭时环境变量也消失。还有一种是永久环境变量,即与终端的关闭与否、电脑的关闭与否没有关系,它始终存在。永久环境变量又分为当前用户的永久环境变量和所有用户的永久环境变量,此处设置当前用户的永久环境变量。
先使用以下代码查看当前环境变量:
echo $PATH # 查看当前环境变量
然后打开.bashrc文件:
subl ~/.bashrc # 使用sublime打开.bashrc文件 vim ~/.bashrc # 使用vim打开.bashrc文件
在.bashrc文件的末尾添加以下内容,其路径要到bin文件夹:
Export PATH=/usr/lib/pypy3-v6.0.0-linux/bin:$PATH
然后重新打开终端即添加成功。或者不关闭终端,直接输入以下内容,也添加成功。
source ~/.bashrc
可以再使用echo语句查看当前环境变量,可以看到头部增加了刚刚添加的路径。此时再输入版本命令即可看到pypy3的版本,我的版本是Python3.5.3,Pypy6.0.0。
4、安装pip
一般情况下,有两种方式安装pip。
(1)方法一:下载包,解压缩包,然后运行setup.py,但我官网提供的ubuntu的pypy3里没有带setuptools,因此运行会报错,安装失败。如果想要使用此方法,可以直接在sublime中打开解压缩后的setup.py,然后运行;或者在终端里输入如下命令(此方法必要要配置环境变量,否则找不到pypy3方法):
pypy3 get_pip.py
(2)方法二:在配置好环境变量的前提下,直接使用命令运行。一般情况下,使用以下命令即可安装
pypy3 -m install pip
但我的报错了:/usr/lib/pypy3-v6.0.0-linux64/bin/pypy3:No module named install。
此时,可以用下面的语句安装和更新:
pypy3 -m ensurepip --default-pip # 安装pip pypy3 -m pip install --upgrade pip setuptools wheel # 更新pip
5、安装第三方库
第三方库基本上都是通过pip来安装的。
pypy3 -m pip install 要安装的库名
此处以psycopg2为例。psycopg2是python连接postgresql的库。
pypy3 -m pip install psycopg2
使用以上语句安装,但我的安装出错了:
Error:b'You need to install postgresql-server-dev-X.Y for building a server-side extension or libpq-dev for building a client-side application.\n'
----------------------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-epd368s6/psycopg2
这两句话,前面提到了解决方法,后面提到了错误位置。
对于第一句话提到的解决方法,此处有详细解决方法。对于第二句话,一般只要出现了Command "python setup.py egg_info" failed with error code 1这样的问题描述,需要考虑可能pip的这个源里面没有对应的python模块(我们需要的是对应的python3.5的模块),通常可以直接搜索“XXX for python3.5”,或者在github中找到对应的python3.5的项目,将对应的.py文件添加到python的lib目录中。
根据前面链接中的详细解决方法,由于我已经安装了postgresql-9.5,因此先添加libpq-dev库,再安装psycopg2即可。