「智慧生活科技專業社群」由 Nantou.py 使用者社群與國立虎尾科技大學電機資訊學院共同維護,匯集關注Python、人工智慧、物聯網與智慧生活應用的教師、學生及實務工作者。本社群以「科技融入生活、教學連結場域、知識促進共好」為核心,分享Python程式設計、AI協作學習、AIoT、網際網路與雲端服務、智慧農業、福祉科技、永續發展及USR社會實踐等內容,並將技術導入課堂、社區與真實生活場域。部分文章運用生成式AI協助資料整理、內容架構、程式範例與文字潤飾,文章主題、場域經驗、內容查核及最終修訂則由作者與社群成員負責。我們期待透過人與AI協作,讓科技成為改善生活、連結世代、支持地方與實踐永續的力量。
2019年7月8日 星期一
2019年4月20日 星期六
用Python撰寫「用戶定義的HTTP回呼」結合IFTTT服務讓生活變得更變利
物聯網(Internet of Things, IoT)已經不在是高科技名詞而是我們日常生活中會用到的技術,日常中經常會使用到LINE、Gmail、Facebook、和一些感測元件,我們可以使用IFTTT服務串連這些服務。
參考資料:
1. ifttt 讓你手上的網路服務比別人聰明,讓網際網路自動做很多事
2.IFTTT Android iOS 入門教學:如果明天下雨請今日提醒我
參考資料:
1. ifttt 讓你手上的網路服務比別人聰明,讓網際網路自動做很多事
2.IFTTT Android iOS 入門教學:如果明天下雨請今日提醒我
3.PM2.5的Line機器IFTTT傳送最新PM2.5數值。
2019年3月26日 星期二
2019年3月10日 星期日
用Python Dash來設計展示用的儀錶板
對於大數據而言,如何用儀錶板來展示資料是很重要的,經由圖表的展現比從大量的數據中,找出關鏈問題做出決策要容易多。本節將介紹如何運用Python語言特質,使用Dash用圖表來展示結果。
參考資料來源:
1. Dash Layout,網址:https://dash.plot.ly/getting-started
2.Create Reactive Web Apps in pure Python,網址:https://medium.com/@plotlygraphs/introducing-dash-5ecf7191b503
3.Plotly Python Open Source Graphing Library
實際測試上述兩個網站所提供的三支程式,使用Python app.py,執行,app.py是指應用程式的名稱,也就是從上述網站中所提供的原始碼來進行測試,然後使用http://127.0.0.1:8050/查看執行結果。
(1) 長條圖
(三) 地圖顯示
參考資料來源:
1. Dash Layout,網址:https://dash.plot.ly/getting-started
2.Create Reactive Web Apps in pure Python,網址:https://medium.com/@plotlygraphs/introducing-dash-5ecf7191b503
3.Plotly Python Open Source Graphing Library
實際測試上述兩個網站所提供的三支程式,使用Python app.py,執行,app.py是指應用程式的名稱,也就是從上述網站中所提供的原始碼來進行測試,然後使用http://127.0.0.1:8050/查看執行結果。
(1) 長條圖
(二) 趨勢圖
(三) 地圖顯示
2019年3月3日 星期日
使用Git+Bitbucket+Python+Django+Heroku來管理和發展網站
本篇將介紹用Git來做版本控制,用Bitbucket來儲存原始碼,使用Python來撰寫程式,Django來發展網站的框架,最後使用Heroku來發布網站。
1.使用Bitbucket來增加一個repository
3.檢查檔案是否己經上傳成功
有關佈署到Heroku請參考文章"用 Heroku 部署網站"
1.使用Bitbucket來增加一個repository
2.按下列輸入指令
3.檢查檔案是否己經上傳成功
有關佈署到Heroku請參考文章"用 Heroku 部署網站"
2019年3月1日 星期五
使用Python+Django架構網站
為何要選用Django可以從下面影片中來瞭解。
中文Django教材可以參考文章"Django Tutorial"。
在Django Project教材中,僅提到三個指令
在"Django Template"文章中,有關datetime.now()使用的程式要改成下列(黃色顏色是補上的程式):
from django.shortcuts import render
import datetime
def now(request):
return render(request, "now.html", {'now': datetime.datetime.now()})
對於"Django Views, Django URL & Django Template 再訪"的文章,view.py的程式應該為:
from django.shortcuts import render
from django.http import HttpResponse
import datetime
from .models import Article
def home(request):
s = "Hello World!"
return HttpResponse(s)
def now(request):
return render(request, "now.html", {'now': datetime.datetime.now()})
def article_detail(request, pk):
article = Article.objects.get(pk=pk)
return render(request, 'article_detail.html', {'article': article})
另外
url(r'article//', article_detail),
也應該是path(r'article//', article_detail),
在部署的文件" 把你的 Django Project 丟上雲端", heroku run python manage.my migrate,其中manage.my 要改成manage.py。
中文Django教材可以參考文章"Django Tutorial"。
在Django Project教材中,僅提到三個指令
- pipenv run django-admin startproject blog
- cd blog
- pipenv run python manage.py runserver
經敏哥測試還需要加上建立虛擬環境以及安裝Django,變成下列:
- pipenv run django-admin startproject blog
- cd blog
- mkvirtualenv blog
- pip install django
- pipenv run python manage.py runserver
在"Django Template"文章中,有關datetime.now()使用的程式要改成下列(黃色顏色是補上的程式):
from django.shortcuts import render
import datetime
def now(request):
return render(request, "now.html", {'now': datetime.datetime.now()})
對於"Django Views, Django URL & Django Template 再訪"的文章,view.py的程式應該為:
from django.shortcuts import render
from django.http import HttpResponse
import datetime
from .models import Article
def home(request):
s = "Hello World!"
return HttpResponse(s)
def now(request):
return render(request, "now.html", {'now': datetime.datetime.now()})
def article_detail(request, pk):
article = Article.objects.get(pk=pk)
return render(request, 'article_detail.html', {'article': article})
另外
url(r'article/
也應該是path(r'article/
2019年2月18日 星期一
Python的虛擬環境 (Virtual Environment)
工欲善其事,必先利其器。在寫 python 程式的時候是否有曾經為了裝某些套件時,但是因為被其他套件的版本或是本身 python 的版本限制住,而無法順利安裝完成呢?
我自己目前有使用兩個python的虛擬環境來解決這個問題,一個是 virtual environemnt,另一個是 anaconda (或 miniconda)。
虛擬環境可以提供開發不同程式的時候,使用各自專案所需的開發環境,不會造成相互影響。或是如果有多人在相同平台上面開發程式時,也可以使用虛擬環境來區隔彼此所需的環境。
其中的 -p /usr/bin/python 這段參數是在指定這次建立的虛擬環境要使用哪一個的 python 執行檔;venv 這個參數是在指定這次建立的虛擬環境要放到哪邊。
透過 source 的指令來指定到剛剛建立的 venv 裡面的 bin/activate 即可。若要離開現在的虛擬環境時,只需要輸入 deactivate 即可。
使用虛擬環境前與使用後的差異如下
如上圖所示,可以發現使用虛擬環境時所使用到的 python 路徑會一併跟著改變了。
Miniconda - https://conda.io/en/latest/miniconda.html
其中的 -n py2 是設定要建立的虛擬環境名稱,後面的 python=2.7 是拿來指定這次環境中 python 的版本。
在 conda 裡面要使用虛擬環境跟 virtualenv 有一點點不同,指令 source 後面需要先加上 activate 之後,再加上之前建立的名稱,要離開目前 conda 的環境是要輸入 source deactivate。
虛擬環境的應用還蠻方便的,尤其是在開發多個專案的時候又遇到有不同的套件需求時,透過虛擬環境可以避免掉相互影響的問題。
虛擬環境可以提供開發不同程式的時候,使用各自專案所需的開發環境,不會造成相互影響。或是如果有多人在相同平台上面開發程式時,也可以使用虛擬環境來區隔彼此所需的環境。
Virtual Environment
如果你的開發環境還沒有 virtualenv 的話,可以透過 easy_install virtualenv 的指令來安裝。建立新的虛擬環境使用方式如下
virtualenv -p /usr/bin/python venv其中的 -p /usr/bin/python 這段參數是在指定這次建立的虛擬環境要使用哪一個的 python 執行檔;venv 這個參數是在指定這次建立的虛擬環境要放到哪邊。
如何套用建立的虛擬環境
source venv/bin/activate透過 source 的指令來指定到剛剛建立的 venv 裡面的 bin/activate 即可。若要離開現在的虛擬環境時,只需要輸入 deactivate 即可。
使用虛擬環境前與使用後的差異如下
如上圖所示,可以發現使用虛擬環境時所使用到的 python 路徑會一併跟著改變了。
如何在虛擬環境安裝套件
當套用了虛擬環境之後,想要安裝任何的套件時,只需要透過 pip 這個指定直接安裝。Anaconda (Miniconda)
另一個我有在使用的虛擬環境是 Anaconda/ Miniconda。Anaconda與Miniconda中間的差異主要在於預設的安裝套件,Anaconda 預設安裝的套件較多,許多 machine learning 會使用到的套件都會預設安裝,而 Minicoda 只會預設定裝 python 基本套件。如何安裝
Anaconda 與 Miniconda 安裝的說明可以參考下面連結。
Anaconda - https://docs.anaconda.com/anaconda/install/Miniconda - https://conda.io/en/latest/miniconda.html
如何建立虛擬環境
conda create -n py2 python=2.7其中的 -n py2 是設定要建立的虛擬環境名稱,後面的 python=2.7 是拿來指定這次環境中 python 的版本。
如何查詢已建立過的虛擬環境
conda env list如何使用虛擬環境
source activate py2在 conda 裡面要使用虛擬環境跟 virtualenv 有一點點不同,指令 source 後面需要先加上 activate 之後,再加上之前建立的名稱,要離開目前 conda 的環境是要輸入 source deactivate。
如何在虛擬環境安裝套件
當套用了虛擬環境之後,想要安裝任何的套件時,在 conda 下也可以直接透過 pip 這個指定直接安裝。或是 conda install PACKAGE_NAME。虛擬環境的應用還蠻方便的,尤其是在開發多個專案的時候又遇到有不同的套件需求時,透過虛擬環境可以避免掉相互影響的問題。
訂閱:
文章 (Atom)












