首頁 > 軟體

Ubuntu + PyPy3 + Sublime 執行Python

2020-06-16 16:33:30

一、命令安裝

一般情況下,在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即可。

sudo apt-get install libpq-dev
pypy3 -m pip install psycopg2

IT145.com E-mail:sddin#qq.com