指向正确 python 版本时出错:virtualenvwrapper.sh

Error with pointing to correct python version: virtualenvwrapper.sh

我在启动终端时遇到这个错误:

Last login: Thu Apr  9 19:49:08 on ttys001
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks. 

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/2.7/bin/python and that PATH is
set properly.
dhcp-128-189-78-23:~ user_me$ 

我需要 "point" 我的虚拟环境升级到我正在使用的 python 版本。

我该怎么做?

virtualenvwrapper install guide 中找到以下内容。你可以试试这个来正确设置你的 $PATH 。

要覆盖 $PATH 搜索,请将变量 VIRTUALENVWRAPPER_PYTHON 设置为要使用的解释器的完整路径,将 VIRTUALENVWRAPPER_VIRTUALENV 设置为要使用的 virtualenv 二进制文件的完整路径。两个变量都必须在 sourcing virtualenvwrapper.sh 之前设置。例如:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

我遇到了完全相同的问题,更新我的路径没有任何帮助,设置 VIRTUALENVWRAPPER_PYTHON 和 VIRTUALENVWRAPPER_VIRTUALENV 也没有任何帮助。这是因为我在 运行 宁我的 python:

版本时看到了这种奇怪的行为
$ /usr/local/bin/python
Python 2.7.6 (v2.7.6:3a1db0d2747e, Nov 10 2013, 00:42:54)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.executable
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python

我可以通过用 brew 卸载 python,用 brew 重新安装 python,并强制它覆盖 /usr/local/bin 中现有的符号链接来修复所有问题。

brew uninstall --force python
brew install python
brew link --overwrite python
brew linkapps python
pip install --upgrade pip setuptools
sudo pip uninstall virtualenv
pip install virtualenv
sudo pip uninstall virtualenvwrapper
pip install virtualenvwrapper

希望您在六个月前遇到这个问题时能够克服它。我想 post 我的解决方案,以防其他人 运行 遇到同样的问题,但无法通过设置他们的路径和环境变量来解决它。

今天经过一系列步骤后我得到了这个错误,第一个是安装 wormhole (https://magic-wormhole.readthedocs.io/en/latest/welcome.html#example),它安装了 Python 3.8。 我开始遇到其他错误,我通过 brew uninstall python@2

解决了这些错误
brew uninstall python@2
Uninstalling /usr/local/Cellar/python@2/2.7.15_2... (4,814 files, 84.8MB)
python@2 HEAD_3 is still installed.
Run `brew uninstall --force python@2` to remove all versions.

brew uninstall --force python@2
Uninstalling python@2... (822B)

此时出现本题错误:

Last login: Wed May 27 11:33:08 on ttys025
/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No module named virtualenvwrapper
virtualenvwrapper.sh: There was a problem running the initialization hooks.

If Python could not import the module virtualenvwrapper.hook_loader,
check that virtualenvwrapper has been installed for
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is
set properly.

我的解决方案是:

ls -l /usr/local/bin/python3
lrwxr-xr-x  1 neo  admin  34 Nov 27 16:46 /usr/local/bin/python3 -> ../Cellar/python/3.7.5/bin/python3


ln -s ../Cellar/python/3.7.5/bin/python3 /usr/local/bin/python

现在错误似乎消失了。 我不确定这是否是一个好的解决方案,我对 understand/know brew 比我更好的人的反馈很感兴趣。

我以前使用 brew install multi version python,但我使用原生 python 创建的 virtualenv,因为我更新了我的 mac os 版本,出事了。我无法让我的 virtualenv 使用以下错误。

/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: No module named virtualenvwrapper

我所做的事情让我的环境恢复了。

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py -o get-pip.py
/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python get-pip.py
/System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -m pip install virtualenvwrapper