如何强制 'mkproject' (virtualenvwrapper) 默认使用 python3?

How to force 'mkproject' (virtualenvwrapper) to use python3 as default?

我已将以下行添加到我的 bash,但是 mkproject 一直在虚拟环境中创建 python 2.7 文件夹,因此我仍然需要使用 -p python3,我不想这样做。

export VIRTUALENVWRAPPER_SCRIPT=/usr/local/bin/virtualenvwrapper.sh
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3
source /usr/local/bin/virtualenvwrapper_lazy.sh

virtualenvwrapper 理解 VIRTUALENVWRAPPER_VIRTUALENV 环境变量,您需要将其设置为适合您正在使用的 python 版本的 virtualenv。例如:

export VIRTUALENVWRAPPER_VIRTUALENV=virtualenv3

这是必需的,因为 virtualenvwrappervirtualenv 作为 shell 脚本执行(无需在命令前面添加 python2python3)。

这样 virtualenv 脚本将使用其 shebang (#!) 中定义的解释器执行。

大多数 Linux 发行版提供两个包:virtualenv2virtualenv3 每个包含一个脚本:

virtualenv2:

#!/usr/bin/python2
import virtualenv
virtualenv.main()

virtualenv3:

#!/usr/bin/python3
import virtualenv
virtualenv.main()

在 Mac 上,您使用 brew 进行 python 安装。因此,将 virtualenv 脚本复制到两个实例中并没有错:vritualenv2virtualenv3 并将 shebang 更改为正确的 python 版本。

(您需要通过 pip 为每个 python 版本安装 virtualenv eggs。)

我在 .bashrc 文件中定义了一个别名来覆盖 mkproject 命令以默认使用 python3:

alias mkproject='mkproject --python=/usr/bin/python3'