Blog Cover Image

Inspire you to have New thinking, Walk out your unique Road.

終端機與Django,python 安裝與打開一個project篇

Posted on Jul 26, 2016

2019/05/13

更新的安裝 python 環境方法有新文章可以做參考: 如何在 MAC 安裝 PYTHON 環境,教你備妥開發 PYTHON 的合格環境 | 新電腦重新安裝

2018/10/27

點開這篇文,我也是會心一笑

我不知道點進來看得朋友們是因為我的標題,還是我裡面的小故事

不過經過了好久,我重新來翻修我的文章

這篇文章是我還在研究所學程式的幼幼時期所亂寫的文章

目前現在出來工作,開始從 Junior 後端工程師開始做起

不過我們公司用的是 Flask,我沒有在用 Django

本篇就直接從本來的發牢騷家家酒文,晉升為初階教學文

先前寫的文章內容將保留在下面

使用工具: Mac, Python 3, Terminal

從開發程式開始,我就堅持用 mac,雖然在研究所時期被學弟跟指導老師唾棄嘲笑過,因為學校都用 windows,導致我自己用 mac 水土不服,所有跟 mac 相關的系統問題都要自己研究

目前用 mac 系統開發的工程師變多了,感到欣慰 QQ

mac 系統很像 Linux, 所以直接學 Linux 也可以


對於一個 python 新手,安裝環境會卡很久, 尤其是在你甚麼都搞不懂的情況下

我自己剛進公司,剛買一部電腦,裝環境時也是很頭痛

你可以選擇用

  • Anaconda

https://www.anaconda.com/

這個好處就是套裝, 一套走天下

壞處就是你會沒經歷過混沌亂搞時期,沒有體會神經元斷開重接的樂趣

自然會不知道如果沒有 Anaconda 時,你該怎麼架好你的環境

  • 自己手動裝

https://wsvincent.com/install-python3-mac/

我想教學都寫得很清楚

我自己買新電腦是用 Anaconda 裝

現在就開始吧,我就直接講第二個自己手動裝了

打開你的終端機 Terminal,你可以在 mac 應用軟體內找到

terminal

一開始,你的目錄會在 User/ (應該會是你取的名字)

也就是你的 Home, 記好這個位子會是 Home, 因為以後你找英文網站,他會請你前往你的 Home 就是這一層

你可以使用

$ ls

來查看這一層目錄有哪些檔案跟資料夾

通常如果你裝 Anaconda, 他會幫你裝在這一層

安裝 Xcode and Homebrew

安裝 Python,我們會需要 Mac Xcode 的套件管理 Homebrew

(只要複製$ 以後的指令到終端機即可)

$ xcode-select --install




$ ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

確認您的 Homebrew 安裝好了

$ brew doctor
Your system is ready to brew.

安裝 Python 3

$ brew install python 3

確認 python 3 安裝好了

$ python3 --version
Python 3.7.0

打 python 3 就可以直接用 python 來編譯了

$ python3
...
...
Type "help", "copyright", "credits" or "license" for more information.
>>>

使用 exit() 離開 python 3 環境

exit()

安裝 PIP

這個非常重要

pip 指令是 python 的套件安裝與套件管理工具

使用 python 後,你將會有極大部分機率常常使用 pip

python 本身環境沒有 pip,除非有方法可以開虛擬環境(開了一個虛擬環境 pip 會幫你安裝好!)

sudo easy_install pip

** 不過好像建立一個虛擬環境,環境就會幫你把 pip 安裝好了,所以也不用擔心,要真的不行再回頭來安裝 pip 吧**


建立虛擬環境

當我們要執行一個新的 project 或軟體開發時,我們會安裝一個虛擬的環境來做開發

通常會在 Home 目錄下開一個新的虛擬環境

但我個人喜好是在桌面 (所以一進公司就被咱偉大的 Senior 前端唸了一番哈哈 xD)

後來也漸漸的在我的 Home 目錄底下開一個 project 資料夾在裡面放我的開發虛擬環境

虛擬環境就是你在裡面亂裝甚麼,怎麼搞破壞,只要把環境的資料夾砍掉,也不會影響到電腦

缺點就是.....

萬一你每次打開電腦回來開發時,忘了 run 虛擬環境,你還是會把一堆雜七雜八的套件不小心安裝在你的電腦 xDDD

手動開啟虛擬環境

$ ls

確保你在你在 Home 裡

資料夾應該會有

Desktop, Download, Application..

如果你安裝 Anaconda, 他也會在這一層

如果你使用 conda 指令來開啟專案

專案資料夾會在 anaconda 裡

開啟一個新的資料夾,你可以取名為 project,也可以取為任何你想要取名的名字

$ mkdir project

然後切換到裡面

$ cd project

在這裡面你會放一堆你開發的專案,接著我們就開始,開啟一個虛擬環境

通常你會再創一個資料夾,就是你的專案名字

$ mkdir mysite

切換進去你的專案資料夾

$ cd mysite

所以這個時候你應該會在這

User
    Desktop
    Download
    Application
    project
        mysite <<

這個指令是,在你目前的位置裝一個虛擬環境

$ python3 -m venv .

這時候你的 mysite 資料夾裡應該會多出一些檔案

bin
lib
...

接著將虛擬環境 run 起

$ source bin/activate
(mysite)$

這個時候你在環境內亂搞,才不會影響到電腦

然後離開你的虛擬環境

(mysite) $ deactivate
$

****為什麼我在這要用 mysite,其實大部分教學的虛擬環境都會是

ooo_venv/ xxx_env 為你的虛擬環境名稱,是為了方便初學者釐清觀念

不過我們做專案跟工作時,我們是會先用 Git 把 GitHub 上的專案 Clone 下來

然後在切換進專案資料夾內安裝虛擬環境

這也是我開始工作後才發現原來工作上的前輩們都是這樣

假設 project 叫 food_web

我們會切換進 food_web 內,然後在 run

$ python3 -m venv .

****

用 Anaconda 的人會使用 conda 指令開一個虛擬環境

因為 conda 可以直接指定版本要 2 還是 3

對於我這個之後才學 3 的人,前陣子不清不楚

最後才學會開環境 2 跟環境 3 的人,經歷了一段渾沌練功時期 qq


安裝 Django

這部分就推薦

https://djangogirlstaipei.gitbooks.io/django-girls-taipei-tutorial/django/installation.html

我的程式幼幼班也是參考他的 QQ

現在我們已經在虛擬環境內了.

(mysite)$

那就開始照網站的內容下指令吧!!

使用我先前說的,你一定會大量使用他的 python 套件 pip 來下載 django

(mysite)$pip install "django<1.9"

(我是不知道為什麼網站要侷限 django < 1.9

我自己的話是不會做這種事,當然後果可能就是,萬一你用 1.9 以上的版本,有其他問題要自己 django 文件看內容 qq

Installing collected packages: django
Successfully installed django-1.8.6

代表成功安裝好了

接著,就開始開一個新的 django app 吧!

<code>(mysite)$ django-admin.py startproject nuuk</code>

我承認這是我亂搞 xD,因為我真的不知道要取甚麼名字對於專案內容

nuuk 是格陵蘭的城鎮,你可以取任何業主或者你自己想叫的名字

目錄會長這樣

nuuk/
─ manage.py
└── nuuk/
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

接著下指令將伺服器 run 起來

在有 manage.py 檔案那一層

$python manage.py runserver
...
...
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

這個就是所謂在本地端或者local 端做測試跟開發

打開你的估狗輸入

http://127.0.0.1:8000/

就可以看到有頁面 show 出來

當然我們這些人會使用別的指令 xD,我個人最愛怪怪的數字

$python manage.py runserver 0.0.0.0:9912

http://127.0.0.1:9912/

80 port 才是對外開放,除了避開一些特定數字

不然其他數字 port 都可以取,不過僅限開發跟測試用

正式對外開放還是 80 port 居多


Django application(app)

最後建立 app

Django 是 MVC/MVT 架構,所以內容編寫會在 View.py 與 Model.py 居多

$ python manage.py startapp trips

我就直接照網站上 key 了

一樣你可以依照你開發的功能去取 app 名字

然後記得在settings.py 加上你新安裝的 app

# nuuk/settings.py

...

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'trips',
)

MVC / MVT 的

View.py 跟 Model.py

會在你的新 app 裡(trips)

所以你可以在你的 nuuk 專案裡開很多 app

然後在各種不同的import

至於 C/T 的 Template

大家就去估狗啦,基本上會需要手動建立 Template

位置應該是 app 的上一層

Template 裡面會放不同的 html/css/js

之後探索的樂趣就交給各位啦

多碰壁,多磨練,多練習

雖然自己才 20 幾歲

但赫然發現每一個專家,每一個技術很厲害的人
一定都是透過不斷的磨練,碰壁及練習,最終才成為專家或者厲害的人

祝福學程式愉快

感謝大家欣賞本文!


<strong>2016/07/26</strong>

今天好歹也動腦整天了

昨天沒有睡好因為昨天晚上看到我的四隻蝦蝦都跑在水草上呼(ㄘㄜ ˋ)吸(ㄊㄤ ˇ)。

今天早上就翻肚三隻剩下一隻,是說我昨天才去水族館買的馬上就給我掛彩。

也因為自己越來越忙,七月真的是一個休息在準備下階段衝刺的月份。

而我從三月就整天嚷嚷要準備托福到現在終於要在這週六去報八月的班。

還好我的分類取作我的藻毬時代,不然蝦死光了我要怎麼繼續發文?


五月開始於教授身邊學習程式語言,今天的我終於接觸到所謂的終端機。

也就是黑視窗,以往我看到人家在用黑視窗的時候覺得打著好難又看不懂的語言指令。

這,我不會學到對吧?這看起來真心難!

但是,我去了解他後反而對他改觀,窩操!!!!終端機真是一個好玩的東西。

其實我剛開始還覺得我買 mac 是不是買錯了?啊工程師都用 mac!

因為我覺得,每次只要有什麼事情我就得找相容性的軟體。

比方說學弟們都用 notepad++去寫網站他還可以跟 ftp 相連

但 mac 好像沒有 notepad++

簡直哭得一蹋糊塗,簡直崩潰簡直.........我碗都敲破了

好了不要理我了,經過今天整天動腦時刻連剛剛打一場LOL都能買兩雙鞋你就知道我不正常了

但到最後,就算使用的很痛苦我也扔然覺得每一次都是一種學習,學習新系統!

然後,本來以為終端機是個很可怕的東西。

結果接觸到了以後發現哇哩咧整個超有趣的辣!!!!!!

而且 mac 終端機可以改顏色,一整個五顏六色繽紛滿地

超興奮,又不知道找誰講噗!!!

終端機就是一個 TMD 超可愛又有趣的東西!!!!又方便!!!!

好啦,其實源自於我門老師要我把我研究將近一個月的 php 砍掉用 python+django 寫

虧我 php 都快要熟了,臨門一腳給我換別的程式語法!!!

總之,我跟著某個知名 django 教學外國網站去安裝環境。

然後卻發現怎麼弄都安裝不好。

剛開始 python 裝下去了,我的 finder 裡都有 python 了,然後要用什麼 pip 裝,又要用虛擬環境去裝。

害我把 python 刪了又裝,刪了再裝。

終於在今天早上 11 點的時候看到一個外國人做的安裝教學 youtube

簡直太神啦!!!!!我就一步一步做然後就真的大概了解他在幹麻,成功了!!!!

基本上從安裝虛擬環境跟用 pip 裝 django 都是在終端機使用,你就可以看到終端機在那邊安裝東西跑東西

我就覺得 TMD 超 Magic 的有沒有

怎麼在一個小視窗裡跑啊跑又跳來跳去的跳出一堆東西出來,感覺就像活生生的東西!!!

感覺我就像在和真的人互動和講話!!!!我在跟我的電腦對話誒誒誒誒誒!!!!

好了,別興奮。

所以說,打開終端機

然後照著它上面 youtube 所寫的

好了以後,大概就是!!!

打開終端機

先切換到桌面

cd desktop

然後可以看看桌面有什麼

ls

會列出桌面上的東西

然後創建虛擬環境

virtualenv 資料夾名稱

再來切換到資料夾

cd 資料夾名稱

再用 ls 可以看這個資料夾裡面有什麼

ls

bin lib

include pip-selfcheck.json

會出現這樣

接著輸入

source bin/activate

就會切換到前面會有(資料夾名稱)

此時可以打

python

去看看你的 python 版本

我不知道是不是我的 mac 有裝

之後在>>>後面打 exit() 會是下面這樣

exit()

離開然後在打

pip install django

原來 pip 是這樣使用,我也沒有去估狗 pip 是什麼。總之就是裝 django

就讓他跑,我說的有趣就是這個,沒跟他說去哪個網址弄他就會自己去載自己去安裝!!!超猛的!!!

[Errno 13] 你如果看到好幾行紅字又包括這樣的訊息,代表你沒切到虛擬環境

您需要

source bin/activate

確認好,因為我一開始這打錯,整個找不到!!!!!!

最後

pip freeze

會看到

Django==1.9.8

django 的版本

然後

django-admin.py startproject my_project

創一個 project 然後切到那

cd my_project

然後 runserver

python manage.py runserver

你可能會看到這些

You have unapplied migrations; your app may not work properly until they are applied.

Run 'python manage.py migrate' to apply them.

可能會看到這兩行是紅字

這時候就是照他上面說的執行

python manage.py migrate

會跑出一堆[ ]為首的一行一行

最後再跑一次

python manage.py runserver

就會看到一堆 ok,ok,done,done

就可以接了

接著可以打上面提供的網址

http://127.0.0.1:8000/

可以看到自己的網站

或者學弟說

python manage.py runserver 0.0.0.80

這樣好像也行,最後那個是 80 port 這的意思是說哪個 server 連進來都行!!!

這個是在你的電腦裡開啟一個 project

每次用一次虛擬環境就要再裝一次 django

指令還是先學一學好,今天學太多東西了,還是先講這個畢竟卡了整個上午

然後,之後又被學弟講了一堆根本沒聽懂的東西,還請另外一個學弟翻譯給我聽XDDDD哈哈哈哈

這果然磁場不合就算講中文也不懂學弟想表達什麼