## 一、安裝Python package
1. **於[Python官網](https://www.python.org/ftp/python/)下載Python package**
(此範例使用Python 3.8.2)
```shell
# 使用Terminal下載Python package
wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz
```
2. 執行指令
```shell
tar -xzf Python-3.8.2.tgz
cd Python-3.8.2/
./configure
make
sudo make install
python3.8
```
* 可能遇到的問題:發現缺少sqlite3的套件,無法import。(參考下方第二段)
* 補充:原始碼的安裝一般有三個步驟:
* 配置(configure)
* 編譯(make)
* 安裝(make install)
3. **架設虛擬環境**
```shell
python3 -m venv {my_env}
```
* 說明:
* 新Python3支援快速建立虛擬環境。(而非使用virtualenv)
* {my_env} 為欲命名之虛擬環境資料夾名稱
如果無法創建env可以先執行以下指令
```shell
sudo apt-get install python3-venv
```
## 二、安裝sqlite3
1. **上[sqlite3官網](https://www.sqlite.org/download.html)下載最新版的sqlite套件包。**
2. **選擇sqlite-autoconf-xxxxxxx.tar.gz的Source Code。**
(範例為sqlite-autoconf-3330000.tar.gz)
3. **執行指令**
```shell
tar -xzvf sqlite-autoconf-3330000.tar.gz
cd sqlite-autoconf-3330000.tar.gz
./configure --prefix=/usr/local/sqlite3
make
sudo make install
```
4. **重新編譯Python**
(範例中使用Python3.8.2)
* 於上述之Python-3.8.2.tgz解壓縮後得到的資料夾(./Python-3.8.2)中,編輯setup.py檔案。
* 於setup.py中修改sqlite_inc_paths的參數,並於array中新增「/usr/local/sqlite3/include」之路徑。如下:
```python
sqlite_inc_paths = [
'/usr/include',
'/usr/include/sqlite',
'/usr/include/sqlite3',
'/usr/local/include',
'/usr/local/include/sqlite',
'/usr/local/include/sqlite3',
'/usr/local/sqlite3/include', # 加上此行路徑
]
```
* 於./Python-3.8.2重新編譯(make) Python。
```shell
make
sudo make install
```
* 補充說明:如果是已經執行`make`之後才重新補上套件、調整檔案,建議可以`make clean`後再重新`make`&`make install`。
* 使用Python,import確認sqlite3是否安裝成功
```python
python3
import sqlite3
```
## 三、離線安裝Python套件
以pytz 2020.4、Django 2.1.7為例:
```shell
pip install pytz-2020.4-py2.py3-none-any.whl
pip install Django-2.1.7-py3-none-any.whl
```