Python 睡眠可繼續執行的 Thread Timer()

Python 想要睡眠後,自動執行某個 Function,其他程式也要可以繼續執行,可以使用 Threading 的 Timer() 來達成。

閱讀全文〈Python 睡眠可繼續執行的 Thread Timer()〉

使用 Brython 來操作網頁的 DOM

一般都使用 JavaScript 來操作網頁的 DOM,不過喜歡寫 Python 的人,總會想要 Python Everywhere。

只要載入 brython.js,就可以在網頁使用 <script type="text/python"> 來操作 DOM 囉~

閱讀全文〈使用 Brython 來操作網頁的 DOM〉

Python CLI 的快速語法(Syntax)檢查

Python、Python3 寫好程式後,程式不想要執行的情況,想要快速確認是否有語法異常,可以用下述作法達成:

  • python -m py_compile example.py
  • python3 -m py_compile example.py

故意寫個錯誤來跑 (example.py 寫個 「aaa x =」)

  • python3 -m py_compile example.py # 正常就沒有任何事情,有錯誤會如下述:
    File "example.py", line 3
    aaa x =
    ^ SyntaxError: invalid syntax

另外還有下述可以使用:

Linux 如何於 Crontab 執行 Python Virtualenv 環境

Python 都會使用 virtualenv 來開發,Deploy 當然也希望可以建造一個乾淨的 virtualenv 的環境來搬移。

不過 Python 的 venv 執行的參數作法如下:

  1. cd venv
  2. . venv/bin/activate # 進入環境,問題出在這個階段,進不去
  3. pip install -r requirements.txt # 安裝所需套件

閱讀全文〈Linux 如何於 Crontab 執行 Python Virtualenv 環境〉

Python PIP 使用 requirements.txt 管理套件相依性

Python 常常會使用 PIP / PIP3 安裝很多套件(Library),但是要移植到其它機器或者要做環境 freeze (避免升級造成程式問題),很常見的作法就是使用 requirements.txt 來限定套件與版本 。

  • 註:requirements.txt 只是習慣的檔名

閱讀全文〈Python PIP 使用 requirements.txt 管理套件相依性〉

Python 使用 pip3 建立虛擬環境 venv

Python 使用 pip 和 Python3 使用 pip3 在此篇步驟都是大同小異的,都可以參考看看~

  1. sudo apt install python3-pip
  2. pip3 install virtualenv
  3. pip3 show virtualenv # 查看 virtualenv.py 在哪裡
    • ~/.local/lib/python3.5/site-packages/virtualenv.py
  4. python3 ~/.local/lib/python3.5/site-packages/virtualenv.py venv
  5. . venv/bin/activate # 或 source venv/bin/activate
  6. (venv) $ pip install -r requirements.txt # 安裝自己需要的套件試試看

更多詳細的操作,可見此篇:Python3 虛擬環境 venv 建置步驟 - 這是用 apt 的 pyvenv 來建立

相關網頁可見:python - What is the difference between venv, pyvenv, pyenv, virtualenv, virtualenvwrapper, pipenv, etc?

Let's encrypt 遇到 'ascii' codec can't decode byte 0xe5 的解法

Let's encrpyt 在更新憑證的時候,遇到下述錯誤訊息:

Attempting to renew cert (example.com) from /etc/letsencrypt/renewal/example.com.conf produced an unexpected error: 'ascii' codec can't decode byte 0xe5 in position 2: ordinal not in range(128). Skipping.

要怎麼解決呢?

閱讀全文〈Let's encrypt 遇到 'ascii' codec can't decode byte 0xe5 的解法〉

Python3 遇到 UnicodeEncodeError: ascii codec 錯誤解法

Python3 遇到下述問題:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0–9: ordinal not in range(128)

此錯誤訊息,要怎麼解決呢?

一般這個都在 Python2 看到,沒想到在 Python3 也會遇到.. @.@a..

閱讀全文〈Python3 遇到 UnicodeEncodeError: ascii codec 錯誤解法〉