我們使用CentOS與古老的Python 2.4解釋器。如何用不同版本的Python運行Python鼻子測試
但我們想用新的2.5/2.6語法寫出測試。
假設我們安裝了第二個Python解釋器(例如python2.6),有什麼辦法可以運行'nosetests'shell命令並告訴它使用特定的Python解釋器而不是默認的解釋器?
我們使用CentOS與古老的Python 2.4解釋器。如何用不同版本的Python運行Python鼻子測試
但我們想用新的2.5/2.6語法寫出測試。
假設我們安裝了第二個Python解釋器(例如python2.6),有什麼辦法可以運行'nosetests'shell命令並告訴它使用特定的Python解釋器而不是默認的解釋器?
nosetests文件是在Python中,所以它應該只是在新版本中運行它的問題。找到該文件是:
which nosetests
然後:
python2.6 /usr/bin/nosetests
調整的名稱和路徑來匹配您的系統。我沒有測試過,但應該可以。
那麼,我會做的是安裝一個不同版本的Python(2.6說),然後創建一個virtualenv並在其中安裝鼻子。然後它將使用該版本的鼻子,並保持你的東西隔離。
您也可以考慮使用tox嘗試搭建解釋器。
最後,你可以簡單地運行鼻子python2.6 $(which nose) [other options] args
來運行較新的Python。
[這個答案](http://stackoverflow.com/a/13211456/1470262)到相關的問題很快顯示瞭如何使用virtualenvs。 – 2014-05-27 23:01:18
另外,我對你的「最後」評論感興趣,但不能完全遵循你的意思。 – 2014-05-27 23:02:00
實際的'nose'命令是一個python腳本。 '$(哪個鼻子)'將展開到腳本的完整路徑(這是virtualenv知道,所以你會得到你正在運行的確切的一個)。明確地將此作爲參數傳遞給首選的python解釋器將使用該解釋器運行該腳本。所以,如果你在'#!'行中安裝了'nose'的老版本python,你可以用它來改變解釋器並運行腳本。 – 2014-05-28 15:44:57
感謝,會那樣做,然後... – 2010-12-16 18:20:05
這與'ImportError'失敗,對我來說... – EOL 2016-01-16 20:49:49
@EOL - 鼻子一個ImportError,或別的東西。你需要在你試圖運行它的Python中安裝鼻子(並且在virtualenv中,如果這是你試圖運行它的地方)。 – 2016-01-17 21:11:14