在MacOS上安装virtualenv和virtualenvwrapper

57

如何在MacOS上安装和配置Pythonvirtualenvvirtualenvwrapper

9个回答

125

要安装virtualenvvirtualenvwrapper以供重复使用,您需要正确配置的Python(此示例使用Python 3.x,但进程对于Python 2.x是相同的)。

虽然您可以从Python网站获得python安装程序,但我强烈建议不要这样做。在MacOS上安装Python的最方便和未来可靠的方法是brew

Python网站的安装程序和brew之间的主要区别在于安装程序将python包放置在:

/Library/Frameworks/Python.framework/Versions/3.x

Brew 另一方面安装 PythonPipSetuptools 并把所有东西放在:

/usr/local/bin/python3.x/site-packages

虽然现在对你来说可能没有什么区别,但以后会有差别。

配置步骤

  1. 安装 brew

查看 brew 安装页面 或者直接在终端中运行以下命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安装Python

使用brew运行以下命令安装python

brew install python3

现在您的系统需要知道在哪里寻找最新安装的Python软件包。请将以下行添加到您的~/.zshrc文件(如果您使用bash,则添加到~/.bash_profile文件):
export PATH=/usr/local/share/python:$PATH

重新启动您的终端。 为了确保您已经正确完成了所有步骤,请运行which python3命令,您应该会得到/usr/local/bin/python的返回结果。
  1. 安装virtualenvvirtualenvwrapper

现在是时候安装virtualenvvirtualenvwrapper,以便能够使用workon命令并在虚拟环境之间切换。这可以通过使用pip来完成:
pip3 install virtualenv virtualenvwrapper

设置`virtualenv`变量
定义虚拟环境的默认路径。例如,您可以在~目录下创建一个隐藏文件夹,并将其命名为.virtualenvs,使用mkdir ~/.virtualenvs命令进行创建。将virtualenv变量添加到.zshrc(或.bash_profile)中。
您的最终版本的.zshrc(或.bash_profile)应包含以下信息,以使已安装的软件包正常工作:
# Setting PATH for Python 3 installed by brew
export PATH=/usr/local/share/python:$PATH

# Configuration for virtualenv
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

重启你的终端。 你应该能够使用mkvirtualenvworkon命令,包括自动补全。

这里有一个小提示,关于如何创建具有特定Python版本的虚拟环境。

如果你正在使用MacOS Mojave并且正在通过brew bottle安装Python3.6,你可能会遇到pip的问题,这里有一个可能有帮助的解决方案。


随着时间的推移,你们中的一些人可能想要安装多个Python版本,并为每个版本创建多个虚拟环境。当这个时刻到来时,我强烈建议使用pyenvpyenv-virtualenv


2
完美的解决方案和解释。我最初使用安装程序安装了Python 3.6,但发现那是一个巨大的头痛 - 建议也使用Homebrew。 - Jihoon Baek
1
似乎通过brew安装的python3可能不会将Python包放在此答案所期望的位置。从我的brew install python中,我得到了以下信息:... 您可以使用以下命令安装Python包 pip3 install 它们将被安装到site-package目录下 /usr/local/lib/python3.8/site-packages ... - Michael
1
@Michael,我没想到有人会检查网站包的完整路径,所以针对你的评论,我已经连接了安装包的缺失路径部分。 - Stan Reduta
12
针对 Big Sur 操作系统的配置信息:将 WORKON_HOME 导出为 $HOME/.virtualenvs 将 VIRTUALENVWRAPPER_PYTHON 导出为 /opt/homebrew/bin/python3 将 VIRTUALENVWRAPPER_VIRTUALENV 导出为 /opt/homebrew/bin/virtualenv 运行 /opt/homebrew/bin/virtualenvwrapper.sh 脚本 - Dr Manhattan
@DrManhattan 非常感谢您!!! 这些路径适用于安装了 BigSur 操作系统和正确使用 brew 安装了 python 的 M1 Mac。 - Kirill Dolmatov
显示剩余5条评论

16

Mac Big Sur
苹果操作系统Big Sur版本

安装

pip3 install virtualenv virtualenvwrapper

或者

pip3 install virtualenv virtualenvwrapper --user

在Home目录下创建文件夹

mkdir .virtualenvs

编辑配置文件

vi .bash_profile

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

export WORKON_HOME=$HOME/.virtualenvs

export VIRTUALENVWRAPPER_VIRTUALENV=/Users/{your_user}/Library/Python/3.8/bin/virtualenv

source /Users/{home_directory}/Library/Python/3.8/bin/virtualenvwrapper.sh
  • 使用'which'命令或'find'检查路径:

重新加载 .bash_profile

source ~/.bash_profile


~/ 表示主目录 - /Users/{你的用户名} 这是一个隐藏文件,因此在Mac Finder中查看时可能需要按Option键。 - msanjay
.bash_profile 通常位于主目录中。 - Natalia Moreno

11

我正在使用 macOS 10.15.7

我一直遵循官方文档,直到这里

然后将其更改为

export WORKON_HOME=$HOME/.virtualenvs

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

# export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.8/bin/virtualenv

# source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/3.8/bin/virtualenvwrapper.sh

在你的情况下,请尝试运行which virtualenvwhich python以获取精确路径。


9

如果您使用的是MacOS

1.

安装virtualenvwrapper

pip3 install virtualenvwrapper

创建“virtualenvs”文件夹。
mkdir ~/.virtualenvs

3.

在导出之前,请确保您正在项目文件夹中进行操作,因为那里是您将激活虚拟环境的地方。

导出

export WORKON_HOME=$HOME/.virtualenvs

接下来,在终端中输入 which python3,查找路径并在等号后面添加它。
export VIRTUALENVWRAPPER_PYTHON=

在我的情况下:

export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.9/bin/python3

要查找virtualenv路径,请在终端中输入 which virtualenv

将路径添加到“=”符号后面

export VIRTUALENVWRAPPER_VIRTUALENV=

在我的情况下:

export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.9/bin/virtualenv

4.

最后一步是在终端中添加源。

几乎与写入 which virtualenv 时获得的路径相同。

不同之处在于末尾有 "wrapper.sh"。

在我的情况下:

source /Library/Frameworks/Python.framework/Versions/3.9/bin/virtualenvwrapper.sh

5.

现在,您可以通过以下方法创建虚拟环境名称:

mkvirtualenv nameOfTheVirtualEnviroment

在我的情况下

mkvirtualenv venv

在这个 Mozilla 页面上,您可以学习如何使用虚拟环境。


请评论一下,我的指令缺少了什么。 - AnonymousUser
1
在MacOS 10.5.7中,我发现很难找到mkvirtualenv命令。您的指示确实帮了我很多。谢谢。 - Devaski
当我在第四步输入source ...命令时,我的终端会被关闭。 - Anum Sheraz
@AnumSheraz 我不知道为什么会这样。对大多数人来说,它是有效的,但对你来说有些问题。你是在使用 MacOS 吗?或者你使用的版本可能对此无效,或者还有其他原因。 - undefined

2

我在我的Mac OS(Big Sur)上安装virtualenvwrapper时遇到了很多问题,但是在我花费整个星期天的时间后,我终于解决了它。我做了什么:

  1. 我使用Homebrew重新安装了Python3。由于某种原因,Homebrew将文件放在非常规目录中(例如:/opt/homebrew/bin/python3或/opt/homebrew/bin/virtualenv)。

  2. 然后我安装了virtualenv(即使它已经默认安装在Python3中),并以sudo模式安装了virtualenvwrapper:sudo pip3 install virtualenvwrapper(没有sudo,我找不到virtualenvwrapper.sh,无法使用whichvirtualenvwrapper命令)。

  3. 之后,在我的主目录(/˜)中,我使用touch .bashrc创建了.bashrc文件,因为这个文件在我的主目录中不存在。

  4. 我使用“which python3”、“which virtualenv”和“which virtualenvwrapper.sh”命令获取它们的位置(重要的是获取这些位置以填充.bashrc文件)。结果是:

    • /opt/homebrew/bin/python3
    • /opt/homebrew/bin/virtualenv
    • /opt/homebrew/bin/virtualenvwrapper.sh
  5. 接下来,使用vim编辑器,我像这样写入该文件:

    export WORKON_HOME=$HOME/.virtualenvs export PROJECT_HOME=$HOME/Devel export VIRTUALENVWRAPPER_PYTHON=/opt/homebrew/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV=/opt/homebrew/bin/virtualenv source /opt/homebrew/bin/virtualenvwrapper.sh

  6. 然后,我使用:wq命令保存此文件,并使用以下命令运行它:

    source .bashrc

  7. 然后,我使用“workon”命令进行测试。它没有显示任何内容,所以它起作用了。

  8. 最后,我创建了一个虚拟环境,它也起作用了。

我犯了很多错误,真的希望没有损坏我的操作系统。

1
以下解决方案对我有用。在我的MAC笔记本电脑上,使用which python3.8检查了Python路径,操作系统为Big Sur(11.4)。

/Users/apple/opt/anaconda3/bin/python3.8

也检查了 which virtualenvwrapper.sh
/Users/apple/opt/anaconda3/bin/virtualenvwrapper.sh

根据上述路径,我已更新了我的~/.bash_profile文件,如下所示。

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/Users/apple/opt/anaconda3/bin/python3.8
source /Users/apple/opt/anaconda3/bin/virtualenvwrapper.sh

然后我成功地找到了~/.bash_profile文件。


0

这个解决方案也适用于11.1版本。

export WORKON_HOME=$HOME/.virtualenvs

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3

# export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.8/bin/virtualenv

# source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/3.8/bin/virtualenvwrapper.sh

0
这是我在Macbook M1上运行的配置。
# Configuration for virtualenv
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_VIRTUALENV_ARGS=' -p /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11 '
export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11
export PATH="/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages:$PATH"

source /Library/Frameworks/Python.framework/Versions/3.11/bin/virtualenvwrapper.sh

-1

Stan的解决方案对我需要不同的.bash_profile修改: (macOS Catalina和Python 3.6)请确保您将版本路径从“..../3.6/...”更改为您的版本。您可以使用“which python3”命令查找Python路径,“which virtualenv”查找virtualenv路径

### BEGIN: for virtualenvwrapper #########################
# Setting PATH for Python 3 installed by brew
# commented the Python path because I have already had that, you might have too.
# PATH="/Library/Frameworks/Python.framework/Versions/3.6/bin/python3:${PATH}"
# export PATH
# Configuration for virtualenv
WORKON_HOME="${HOME}/.virtualenvs"
export WORKON_HOME

VIRTUALENVWRAPPER_PYTHON="/Library/Frameworks/Python.framework/Versions/3.6/bin/python3"
export VIRTUALENVWRAPPER_PYTHON
VIRTUALENVWRAPPER_VIRTUALENV="/Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenv"
export VIRTUALENVWRAPPER_VIRTUALENV
source /Library/Frameworks/Python.framework/Versions/3.6/bin/virtualenvwrapper.sh
### END: for virtualenvwrapper #########################

从您提供的代码片段来看,似乎您是使用“安装程序”而不是“brew”安装了python,这就是为什么您需要一个不同的path来执行python的原因。 - Stan Reduta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接