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

習題 46: 一個項目骨架?

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

骨架內(nèi)容?

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

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

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

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

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

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

 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)

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

最后你需要一個簡單的測試專用的骨架文件叫 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!"

最終目錄結構?

當你完成了一切準備工作,你的目錄看上去應該和我這里的一樣:

$ ls -R
NAME                bin             docs            setup.py        tests

./NAME:
__init__.py

./bin:

./docs:

./tests:
NAME_tests.py       __init__.py

這是 unix 下看到的東西,不過 Windows 下也是一樣的,如果以樹狀結構顯示就是這個樣子:

setup.py
NAME/
    __init__.py
bin/
docs/
tests/
    NAME_tests.py
    __init__.py

從現(xiàn)在開始,你應該在這層目錄運行命令。如果你運行 ls -R 看到的不是這個目錄架構,那你所處的目錄就是錯的。例如人們經(jīng)常到 tests/ 目錄下運行那里的文件,但這樣是行不通的。要運行你的 測試,你需要到 tests/ 的上一級目錄,也就是我這里顯示的目錄來運行。所以,如果你運行下面的命令:

$ cd tests/   # WRONG! WRONG! WRONG!
$ nosetests

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

這樣做大錯特錯!你必須在 tests 目錄的上一層運行才可以,所以假設你犯了這個錯誤,你應該用下面的方法來正確執(zhí)行:

$ cd ..   # 離開 tests/ 目錄
$ ls      # CORRECT! 現(xiàn)在你所處的目錄是正確的
NAME                bin             docs            setup.py        tests
$ nosetests
.
----------------------------------------------------------------------
Ran 1 test in 0.004s

OK

記住這一條,因為人們經(jīng)常犯這樣的錯誤。

Python 軟件包的安裝?

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

所以我不會提供詳細的安裝步驟了,我只會告訴你需要安裝哪些東西,然后讓你自己搞定。這對你也有好處,因為你將打開一個全新的世界,里邊充滿了其他人發(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

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

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

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

測試你的配置?

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

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

OK

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

使用這個骨架?

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

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

小測驗?

這節(jié)練習沒有加分習題,不過需要你做一個小測驗:

  1. 找文檔閱讀,學會使用你前面安裝了的軟件包。
  2. 閱讀關于 setup.py 的文檔,看它里邊可以做多少配置。Python 的安裝器并不是一個好軟件,所以使用起來也非常奇怪。
  3. 創(chuàng)建一個項目,在模組目錄里寫一些代碼,并讓這個模組可以運行。
  4. bin 目錄下放一個可以運行的腳本,找材料學習一下怎樣創(chuàng)建可以在系統(tǒng)下運行的 Python 腳本。
  5. 在你的 setup.py 中加入 bin 這個目錄,這樣你安裝時就可以連它安裝進去。
  6. 使用 setup.py 安裝你的模組,并確定安裝的模組可以正常使用,最后使用 pip 將其卸載。

Project Versions

Table Of Contents

Previous topic

習題 45: 對象、類、以及從屬關系

Next topic

習題 47: 自動化測試

This Page

贺州市| 凤庆县| 怀仁县| 伊金霍洛旗| 江达县| 合肥市| 隆安县| 舟曲县| 阿鲁科尔沁旗| 旬阳县| 新民市| 蚌埠市| 寻乌县| 烟台市| 桐柏县| 临颍县| 阜阳市| 奉新县| 福清市| 铁力市| 孝义市| 台中市| 射洪县| 会宁县| 荆州市| 张家港市| 德州市| 老河口市| 宿州市| 沙田区| 扶沟县| 井陉县| 岐山县| 绥芬河市| 峨眉山市| 徐汇区| 大竹县| 黄梅县| 延寿县| 岑巩县| 海晏县|