# 於 Ubuntu 22.04 安裝 Spyder 5.4.1
> 作者:王一哲
> 日期:2023年1月3日
<br />
## 前言
由於我之前將作業系統由 Ubuntu 20.04 升級成 22.04,升級之後發現之前常用的 Python IDE [Spyder](https://www.spyder-ide.org/) 無法啟動,上網搜尋之後我發現有很多人遇到同樣的問題,似乎是因為 Ubuntu 套件伺服器上提供的 Spyder 版本太舊造成的。後來我又找到了 Spyder 官方的[安裝說明](https://docs.spyder-ide.org/current/installation.html),以下是我的測試過程。
<br />
## 安裝步驟
先用以下的指令移除之前透過 apt 指令安裝的 Spyder
```shell
sudo apt purge spyder
```
<br />
但是我只想要安裝 Spyder,不想要安裝 [Anaconda](https://www.anaconda.com/),這樣會額外安裝了很多我不會用到的東西。由於需要設定虛擬環境 (virtual environment),而我使用的 Python 版本為 3.10.6,需要先用以下的指令安裝套件 python3.10-venv。
```shell
sudo apt install python3.10-venv
```
<br />
使用以下的指令建立給 Spyder 使用的環境
```shell
python3 -m venv spyder-env
```
<br />
使用以下的指令進入給 Spyder 使用的環境
```shell
source spyder-env/bin/activate
```
<br />
使用以下的指令安裝 Spyder 以及有其它需要使用的套件,例如我常使用的 VPython。
```shell
pip3 install spyder vpython
```
<br />
目前安裝的 Spyder 版本是 5.4.1,安裝過程會需要一段時間。安裝完成後就可以用指令開啟 Spyder
```shell
spyder
```
<br />
<img height="60%" width="60%" src="https://imgur.com/0czyURh.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">於命令列介面執啟動 Spyder</div><br />
<img height="100%" width="100%" src="https://imgur.com/TwrTLUo.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">Spyder 起始畫面</div><br /><br />
如果採用這個方式安裝,於 Ubuntu 概覧中無法搜尋到 Spyder,一定要從命令列介面執行以下指令才能開啟 Spyder。
```shell
source spyder-env/bin/activate
spyder
```
<br />
## 測試 VPython
啟動 Spyder 之後按 **Ctrl + N** 新增檔案,貼上以下的程式碼
```python=
from vpython import *
"""
1. 參數設定, 設定變數及初始值
"""
size = 0.1 # 木塊邊長
L = 1 # 地板長度
v = 0.03 # 木塊速度
t = 0 # 時間
dt = 0.01 # 時間間隔
"""
2. 畫面設定
"""
scene = canvas(title="1D Motion", width=800, height=600, x=0, y=0, center=vec(0, 0.1, 0), background=vec(0, 0.6, 0.6))
floor = box(pos=vec(0, 0, 0), size=vec(L, 0.1*size, 0.5*L), color=color.blue)
cube = box(pos=vec(-0.5*L + 0.5*size, 0.55*size, 0), size=vec(size, size, size), color=color.red, v=vec(v, 0, 0))
"""
3. 物體運動部分, 木塊到達地板邊緣時停止執行
"""
while cube.pos.x <= 0.5*L- 0.5*size:
rate(1000)
cube.pos.x += v*dt
t += dt
print("t = ", t)
```
<br />
雖然程式碼的左側有許多的驚嘆號,顯示 Spyder 找不到名為 vpython 的套件,或是找不到名為 canvas、vec、box、color、rate 等物件,但是按 **F5** 仍然可以成功地跑出動畫,我暫時還沒有找到解決驚嘆號的方法。
<img height="100%" width="100%" src="https://imgur.com/MTkd0XW.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">於 Spyder 中測試 VPython</div><br />
<img height="60%" width="60%" src="https://imgur.com/vp0HOyW.png" style="display: block; margin-left: auto; margin-right: auto;"/>
<div style="text-align:center">VPython 動畫截圖</div><br /><br />
## 結語
目前的作法雖然可以成功地在 Ubuntu 22.04 中使用 Spyder,但總覺得這個方法不太方便,希望 Ubuntu 官方的套件伺服器可以更新一下 Spyder 版本,使用 apt 安裝套件還是比較簡單。
<br /><br />
---
###### tags:`Python`、`VPython`