【问题标题】:python virtualenvwrapper bad interpreterpython virtualenvwrapper 错误的解释器
【发布时间】:2017-07-23 21:00:40
【问题描述】:

我最近从 python 3.5 升级到 python 3.6(在 macOS 上使用 brew)。但是 virtualenvwrapper 现在似乎被破坏了,我得到了错误。不幸的是,重新安装没有帮助。

mkvirtualenv:78: /usr/local/bin/virtualenv: bad interpreter: /usr/local/opt/python3/bin/python3.5: no such file or directory

我设置了VIRTUALENV_PYTHON=python3,所以默认是用python3安装一个virtualenv。

【问题讨论】:

  • 作为一种解决方法,您可以指定 python 解释器的路径(至少在 linux 上,但它也应该在 macOS 上工作)。尝试拨打mkvirtualenv -p PATH_TO_PYTHON_EXECUTABLE NAME_OF_YOUR_ENV
  • 我还将 python 2 从 python 2.7.10 更新到 2.7.13,这可能是问题而不是 python 3。通过 $ python 启动 python。给我 2.7.10 而不是更新 2.7.13 所以我认为它正在启动系统 python 而不是 brew 版本 which python 返回 /usr/bin/python 并尝试用 brew unlink python && brew link python 修复不幸的是不起作用。
  • @Kedrzu mkvirtualenv:找不到命令
  • 请注意,上面的注释不再相关,因为 brew 已经改变了它安装 python 的方式,现在将 python 2 安装到 pythonpython2 和 python 3 到 python3 命令。这简化了问题。

标签: python


【解决方案1】:
  1. 打开终端 使用which python3.6显示python3.6的路径
  2. 打开文件/usr/local/bin/virtualenv
  3. #!开头的第一行改成python3.6之前的路径

【讨论】:

  • 这确实有效,但会将其硬编码为该 python 版本,这在稍后再次升级时并不理想,例如 macOS 上的 brew。
  • 若要使其适用于所有 python3.X 版本,只需在路径中使用 python3 而无需特定版本。这使您可以brew switch python 3.X.X 而不必更改 virtualenv 文件。
【解决方案2】:

对我来说,这是因为某些目录名称中有空格,而virtualenv 没有正确解析路径。为了安全起见,只需从目录名称中删除空格并用-_ 替换它们,它应该可以正常工作:)

【讨论】:

    【解决方案3】:

    使用:pip install --upgrade virtualenv

    或:sudo pip install -U --force-reinstall virtualenv

    【讨论】:

      猜你喜欢
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 2010-10-28
      • 1970-01-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多