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

时间:2016-07-10 13:23:40

标签: python python-2.7 python-3.x virtualenv virtualenvwrapper

我已经在我的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

2 个答案:

答案 0 :(得分:2)

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

export VIRTUALENVWRAPPER_VIRTUALENV=virtualenv3

这是必需的,因为virtualenvwrapper执行virtualenv作为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版本。

(对于每个python版本,您需要通过virtualenv安装pip鸡蛋。)

答案 1 :(得分:1)

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

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