最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

習(xí)題 46: 一個(gè)項(xiàng)目骨架?

這里你將學(xué)會(huì)如何建立一個(gè)項(xiàng)目“骨架”目錄。這個(gè)骨架目錄具備讓項(xiàng)目跑起來的所有基本內(nèi)容。它里邊會(huì)包含你的項(xiàng)目文件布局、自動(dòng)化測(cè)試代碼,模組,以及安裝腳本。當(dāng)你建立一個(gè)新項(xiàng)目的時(shí)候,只要把這個(gè)目錄復(fù)制過去,改改目錄的名字,再編輯里邊的文件就行了。

骨架內(nèi)容: Linux/OSX?

首先使用下述命令創(chuàng)建你的骨架目錄:

~ $ mkdir -p projects
~ $ cd projects/
~/projects $ mkdir skeleton
~/projects $ cd skeleton
~/projects/skeleton $ mkdir bin NAME tests docs

我使用了一個(gè)叫 projects 的目錄,用來存放我自己的各個(gè)項(xiàng)目。然后我在里邊建立了一個(gè)叫做 skeleton 的文件夾,這就是我們新項(xiàng)目的基礎(chǔ)目錄。其中叫做NAME 的文件夾是你的項(xiàng)目的主文件夾,你可以將它任意取名。

接下來我們要配置一些初始文件:

~/projects/skeleton $ touch NAME/__init__.py
~/projects/skeleton $ touch tests/__init__.py

以上命令為你創(chuàng)建了空的模組目錄,以供你后面為其添加代碼。然后我們需要建立一個(gè) setup.py 文件,這個(gè)文件在安裝項(xiàng)目的時(shí)候我們會(huì)用到它:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

config = {
    'description': 'My Project',
    'author': 'My Name',
    'url': 'URL to get it at.',
    'download_url': 'Where to download it.',
    'author_email': 'My email.',
    'version': '0.1',
    'install_requires': ['nose'],
    'packages': ['NAME'],
    'scripts': [],
    'name': 'projectname'
}

setup(**config)

編輯這個(gè)文件,把自己的聯(lián)系方式寫進(jìn)去,然后放到那里就行了。

最后你需要一個(gè)簡單的測(cè)試專用的骨架文件叫 tests/NAME_tests.py

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
from nose.tools import *
import NAME

def setup():
    print "SETUP!"

def teardown():
    print "TEAR DOWN!"

def test_basic():
    print "I RAN!"

Python 軟件包的安裝?

你需要預(yù)先安裝一些軟件包,不過問題就來了。我的本意是讓這本書越清晰越干凈越好,不過安裝軟件的方法是在是太多了,如果我要一步一步寫下來,那 10 頁都寫不完,而且告訴你吧,我本來就是個(gè)懶人。

所以我不會(huì)提供詳細(xì)的安裝步驟了,我只會(huì)告訴你需要安裝哪些東西,然后讓你自己搞定。這對(duì)你也有好處,因?yàn)槟銓⒋蜷_一個(gè)全新的世界,里邊充滿了其他人發(fā)布的 Python 軟件。

接下來你需要安裝下面的軟件包:

  1. pip – http://pypi.python.org/pypi/pip
  2. distribute – http://pypi.python.org/pypi/distribute
  3. nose – http://pypi.python.org/pypi/nose/
  4. virtualenv – http://pypi.python.org/pypi/virtualenv

不要只是手動(dòng)下載并且安裝這些軟件包,你應(yīng)該看一下別人的建議,尤其看看針對(duì)你的操作系統(tǒng)別人是怎樣建議你安裝和使用的。同樣的軟件包在不一樣的操作系統(tǒng)上面的安裝方式是不一樣的,不一樣版本的 Linux 和 OSX 會(huì)有不同,而 Windows 更是不同。

我要預(yù)先警告你,這個(gè)過程會(huì)是相當(dāng)無趣。在業(yè)內(nèi)我們將這種事情叫做 “yak shaving(剃牦牛)”。它指的是在你做一件有意義的事情之前的一些準(zhǔn)備工作,而這些準(zhǔn)備工作又是及其無聊冗繁的。你要做一個(gè)很酷的 Python 項(xiàng)目,但是創(chuàng)建骨架目錄需要你安裝一些軟件包,而安裝軟件包之前你還要安裝 package installer (軟件包安裝工具),而要安裝這個(gè)工具你還得先學(xué)會(huì)如何在你的操作系統(tǒng)下安裝軟件,真是煩不勝煩呀。

無論如何,還是克服困難把。你就把它當(dāng)做進(jìn)入編程俱樂部的一個(gè)考驗(yàn)。每個(gè)程序員都會(huì)經(jīng)歷這條道路,在每一段“酷”的背后總會(huì)有一段“煩”的。

測(cè)試你的配置?

安裝了所有上面的軟件包以后,你就可以做下面的事情了:

~/projects/skeleton $ nosetests
.
----------------------------------------------------------------------
Ran 1 test in 0.007s

OK

下一節(jié)練習(xí)中我會(huì)告訴你 nosetests 的功能,不過如果你沒有看到上面的畫面,那就說明你哪里出錯(cuò)了。確認(rèn)一下你的 NAMEtests 目錄下存在 __init__.py, 并且你沒有把 tests/NAME_tests.py 命名錯(cuò)。

使用這個(gè)骨架?

剃牦牛的事情已經(jīng)做的差不多了,以后每次你要新建一個(gè)項(xiàng)目時(shí),只要做下面的事情就可以了:

  1. 拷貝這份骨架目錄,把名字改成你新項(xiàng)目的名字。
  2. 再將 NAME 模組更名為你需要的名字,它可以是你項(xiàng)目的名字,當(dāng)然別的名字也行。
  3. 編輯 setup.py 讓它包含你新項(xiàng)目的相關(guān)信息。
  4. 重命名 tests/NAME_tests.py ,讓它的名字匹配到你模組的名字。
  5. 使用 nosetests 檢查有無錯(cuò)誤。
  6. 開始寫代碼吧。

小測(cè)驗(yàn)?

這節(jié)練習(xí)沒有加分習(xí)題,不過需要你做一個(gè)小測(cè)驗(yàn):

  1. 找文檔閱讀,學(xué)會(huì)使用你前面安裝了的軟件包。
  2. 閱讀關(guān)于 setup.py 的文檔,看它里邊可以做多少配置。Python 的安裝器并不是一個(gè)好軟件,所以使用起來也非常奇怪。
  3. 創(chuàng)建一個(gè)項(xiàng)目,在模組目錄里寫一些代碼,并讓這個(gè)模組可以運(yùn)行。
  4. bin 目錄下放一個(gè)可以運(yùn)行的腳本,找材料學(xué)習(xí)一下怎樣創(chuàng)建可以在系統(tǒng)下運(yùn)行的 Python 腳本。
  5. 在你的 setup.py 中加入 bin 這個(gè)目錄,這樣你安裝時(shí)就可以連它安裝進(jìn)去。
  6. 使用 setup.py 安裝你的模組,并確定安裝的模組可以正常使用,最后使用 pip 將其卸載。
汾西县| 革吉县| 乐平市| 工布江达县| 永福县| 买车| 舞钢市| 琼结县| 隆林| 奎屯市| 上栗县| 太和县| 洛南县| 社旗县| 昭觉县| 杂多县| 读书| 蛟河市| 方正县| 杭锦后旗| 乐东| 旬阳县| 沐川县| 石门县| 高密市| 福泉市| 柳河县| 禹州市| 五莲县| 南涧| 绥滨县| 军事| 怀化市| 武乡县| 巩义市| 类乌齐县| 维西| 桦甸市| 四会市| 荔浦县| 新宁县|