2015-11-05 33 views
1

此問題與this one類似,但不完全相同。我如何使pyinvoke使用python3?

我安裝了python2.7和python3.5。我可以使用命令行中的任何一種運行腳本。我當前的默認「python」是python2。

我有一個python3腳本使用pyinvoke,我需要運行,這通常運行命令行使用命令invoke <task>。即使我設置了一個使用python3的虛擬環境,invoke仍然使用python2。

我假設我缺少關於虛擬環境的東西?

我現在唯一的解決方法是隻安裝pyinvoke for python3。然後它將在python3下運行。

有人知道如何設置它來與虛擬環境一起工作嗎?

回答

0

我想你已經在全球範圍內安裝了invoke,而不是所有的virtualenvs。

如果是這樣,一個解決將是:

#!/usr/bin/bash 
# Remove global invoke, at a fresh terminal or after deactivate 
$ pip uninstall invoke 

爲了測試它,添加調用的tasks.py文件:

import sys 
print(sys.version_info) 

然後在終端校驗,我們得到的Python 3.X:

#!/usr/bin/bash 
$ mkvirtualenv myproject_py3 --python=$(which python3) 
(myproject_py3)$ pip install invoke 
(myproject_py3)$ invoke --list 
sys.version_info(major=3, minor=5, micro=0, releaselevel='final', serial=0) 
No tasks found in collection 'tasks'!