什麼是virtualenv
所謂 虛擬環境(virtualenv),就是可以在乙個主機上,自定義出多套的python環境,多套環境中使用不同的python解析器,環境變數設定,第三方依賴包,執行不同的測試命令,最重要的是各個環境之間互不影響,相互隔離。
最典型的應用場景就是測試在不同python版本下**的相容性。我們可以為py2.4,py2.5,py2.6,py2.7,py3.4等不同python版本建立不同的虛擬環境,通過tox進行統一管理。也可以自定義虛擬環境(tox.ini進行配置),例如:testenv:pep8,**格式檢查;testenv:cover,測試覆蓋率。
什麼是tox
tox是通用的虛擬環境(virtualenv)管理和測試命令列工具。
安裝tox
可以通過pip命令進行安裝,具體不做詳細介紹。
pip install tox
tox.ini
配置檔案:關於專案的基本資訊以及該專案待執行的環境。
這個檔案需要跟專案的setup.py檔案放置同一路徑下。
在這個路徑下,執行tox-quickstart 可生成示例tox.ini檔案,我們可以根據需要手動修改配置資訊。
在該路徑下,執行tox,發生什麼?
①打包專案②構建虛擬機器測試環境③測試專案**
envlist:指定virtualenv,下面的**中指定py27跟py35,那麼我們必須保證環境中已經安裝了python2.7跟python3.5, 否則會報錯。
api-ref、docs都是自定義,後續再討論。
第一次執行會比較慢,再次執行就會快很多,因為不在需要重新構造virtualenv,也不需要重新安裝依賴。 當然可以通過tox –recreate命令強制每次都重新構造
[tox]
minversion = 2.3.1
skipsdist = true
envlist = py35,py27,pep8,api-ref,docs,genconfig,genpolicy,releasenotes
testenv是tox預設的section,類似父類,一般會將一些公共的配置寫在這個section中,比如install_command、deps、commands等等。api-ref的i法:[testenv:api-ref]
執行tox -e api-ref時,會按照testenv中的配置進行依賴包的安裝。
install_command:將packages安裝進虛擬環境中,既包括test下的packages也包括deps定義的依賴。
必須包含 ,用來替換將要安裝的package名稱
如果採用pip進行安裝則必須包含
[testenv]
usedevelop = true
install_command = pip install -c
setenv = virtual_env=
deps = -r/test-requirements.txt
.[ldap,memcache,mongodb]
commands =
find keystone -type f -name "*.pyc" -delete
stestr run
whitelist_externals =
bash
find
passenv = http_proxy http_proxy https_proxy https_proxy no_proxy no_proxy pbr_version
參考指南:
1. 2.
openstack中的訊息匯流排
1.遠端過程呼叫 rpc remote procedure call 乙個服務程序呼叫其他遠端服務程序的方法,包含call和cast方法 call主要是通過同步執行,呼叫者會被阻塞,直到結果返回 cast主要是非同步執行,不會立即返回結果,頁不阻塞呼叫者 2.事件通知 event notificat...
Openstack中的浮動IP
預設情況下例項會被賦予固定ip,這時並不能保證例項會馬上可以從外面訪問到,一般來說需要配置防火牆來允許公共ip,然後建立一條nat規則從公共ip到私有ip的對映。openstack引入了乙個叫浮動ip的概念,浮動ip是一些可以從外部訪問的ip列表,通常從isp 買來的。浮動ip預設不會自動賦給例項,...
openstack部署中的錯誤總結
在安裝到glance上傳鏡象時出錯,折騰不出來,先記在這兒 1 glance index failed to show index.got error you are not authenticated.解決方法 keystone配置出錯,解決keystone問題 1 刪除以前mysql生成的key...