如何让pyinvoke使用python3?

这个问题类似于 this one但不完全相同.

我安装了python2.7和python3.5.我可以从命令行使用其中任何一个来运行脚本.我当前的默认“python”是python2.

我有一个python3脚本使用我需要运行的pyinvoke,通常使用命令invoke< task>运行.从命令行.即使我设置了一个使用python3的虚拟环境,invoke仍然使用python2.

我假设我有一些关于虚拟环境的东西?

我现在唯一的解决办法就是只为python3安装pyinvoke.然后它将在python3下运行.

有人知道如何设置它以使用虚拟环境吗?

最佳答案 我猜你已经在全球范围内安装了 invoke,除了所有的virtualenvs.

如果是这样,修复将是:

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

要测试它,添加到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'!
点赞