我在这里找到了解决问题的方法
,所以所有的功劳归于作者。
要点是,在创建一个虚拟环境时,会创建许多指向Homebrew安装的Python的符号链接。
以下是一个例子:
$ ls -la ~/.virtualenvs/my-virtual-env
...
lrwxr-xr-x 1 ryan staff 78 Jun 25 13:21 .Python -> /usr/local/Cellar/python/2.7.7/Frameworks/Python.framework/Versions/2.7/Python
...
еҪ“дҪ дҪҝз”ЁHomebrewеҚҮзә§Python并иҝҗиЎҢ`brew cleanup`ж—¶пјҢиҷҡжӢҹзҺҜеўғдёӯзҡ„з¬ҰеҸ·й“ҫжҺҘдјҡжҢҮеҗ‘дёҚеҶҚеӯҳеңЁзҡ„и·Ҝеҫ„пјҲеӣ дёәHomebrewе·Іе°Ҷе®ғ们еҲ йҷӨпјүгҖӮ
иҝҷдәӣз¬ҰеҸ·й“ҫжҺҘйңҖиҰҒжҢҮеҗ‘ж–°е®үиЈ…зҡ„Pythonпјҡ
lrwxr-xr-x 1 ryan staff 78 Jun 25 13:21 .Python -> /usr/local/Cellar/python/2.7.8_1/Frameworks/Python.framework/Versions/2.7/Python
解决方法是删除virtualenv中的符号链接,然后重新创建它们:
find ~/.virtualenvs/my-virtual-env/ -type l -delete
virtualenv ~/.virtualenvs/my-virtual-env
在删除链接之前,最好先检查哪些链接将被删除:
find ~/.virtualenvs/my-virtual-env/ -type l
在我看来,仅删除损坏的符号链接甚至更好。您可以使用GNU find
来执行此操作:
gfind ~/.virtualenvs/my-virtual-env/ -type l -xtype l -delete
您可以使用Homebrew安装GNU
find
,如果您还没有它的话:
brew install findutils
请注意,默认情况下,通过Homebrew安装的GNU程序往往会以字母
rmvirtualenv
仍然有效,但是当尝试运行mkvirtualenv
时,我会收到以下错误:`-bash: /usr/local/bin/virtualenv: /usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/Resour: bad interpreter: No such file or directory`
因此,似乎存在我的 Python 路径问题,但我看不到问题所在,因为我可以运行 Python,而且它似乎很正常。 - oxtayvirtualenv
命令都可以工作,但由于 Python 存在问题,它们并没有起到任何作用。所以真正的问题在于 brew 的 Python。我怀疑原因是 Python 目录名称的更改。由于某种原因,所有这些命令都在寻找/usr/local/Cellar/python/2.7.6
文件夹中的 Python,但实际上文件夹的名称是/usr/local/Cellar/python/2.7.6_1
。 - oxtay/usr/local/Cellar/python/2.7.6
的新目录(mkdir
),并将/usr/local/Cellar/python/2.7.9
中的所有文件复制(cp -r
)到该文件夹中。我太紧张了,不敢只是重命名文件夹! - Patrick Williams