python - macOS 上的 virtualenv 使用不存在的 python 解释器

标签 python macos virtualenv homebrew

当我运行 virtualenv 时,我得到了这个:

$ virtualenv
-bash: /usr/local/bin/virtualenv: /usr/local/opt/python/bin/python2.7: bad interpreter: No such file or directory

virtualenv 今天才开始以这种方式运行。昨天成功了。它中断是因为 virtualenv 是一个使用不存在的 Python 解释器的 Python 脚本:

$ head -1 $(which virtualenv)
#!/usr/local/opt/python/bin/python2.7

在我的机器上,/usr/local/opt/python 是指向 Python 3.6 目录的符号链接(symbolic link):

$ ls -l /usr/local/opt/python
lrwxr-xr-x  1 jim  admin  24  2 Mar 13:45 /usr/local/opt/python -> ../Cellar/python/3.6.4_3

正如预期的那样,Python 3.6 目录不包含 bin/python2.7:

$ ls /usr/local/Cellar/python/3.6.4_3/bin/
2to3            idle            pip3            pydoc3.6        python3-config      python3.6m-config   wheel3
2to3-3.6        idle3           pip3.6          python          python3.6       pyvenv
easy_install        idle3.6         pydoc           python-config       python3.6-config    pyvenv-3.6
easy_install-3.6    pip         pydoc3          python3         python3.6m      wheel

virtualenv 显然期望 /usr/local/opt/python 包含 Python 2 Material ,但它只包含 Python 3 Material 。

我的 /usr/local/opt/python 由 Homebrew 管理。我不知道我的 virtualenv 的出处。我如何找出我的 /usr/local/bin/virtualenv 来自哪里?

谁的错?我的 virtualenv 还是 Homebrew?

最佳答案

这要归咎于 pip,而不是 Homebrew。我的 /usr/local/bin/virtualenv 来自 pip install virtualenv,它在安装时嵌入了到 Python 解释器的绝对链接!我打开了an issue about this unidiomatic behavior .

关于python - macOS 上的 virtualenv 使用不存在的 python 解释器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49071121/

相关文章:

python - 更改 virtualenv 中使用的 python 版本

python - 为什么 pip freeze list "pkg-resources==0.0.0"?

python - (cv2,capture) 对象不可调用

python - Django - 加载 css 的问题

python - Pandas:使用方法链修改单元格值

ios - 来自 IOS 开发人员的 OS X 资源

xcode - xCode 6.4在El Capitan上崩溃

python - 使用 pyinstaller 时出现错误 "has no attribute ' reduce_cython”

swift - 如何获取 NSTableView 中选定的行?查看(位于列 :row:makeIfNecessary:) return nil

python - 使用 Subprocess (Python) 发送 CMD 命令提示符