【问题标题】:Can't switch python version on Pipenv无法在 Pipenv 上切换 python 版本
【发布时间】:2018-12-07 20:43:10
【问题描述】:

在我的 MacBook Pro 上,我默认使用 Python 3.6,但我从另一个项目接管的项目需要 2.7,我通过 Anaconda 安装了它。我使用pipenv install 设置了 Pipenv,将版本设置为 3.6。然后我尝试通过以下方式更改版本:

pipenv --python 2.7

但它返回了这个警告:

Warning: Your Pipfile requires python_version 3.6, but you are using 2.7.15 (/Users/j/.local/share/v/Z/bin/python).

那么pipenv check当然失败了,又返回了:

Specifier python_version does not match 3.6 (2.7).

然后我尝试了pipenv install python 2.7.15,也失败了。 Pipfile 保持 3.6 不变。

Error:  An error occurred while installing 2.7.15!
  Could not find a version that satisfies the requirement 2.7.15 (from versions: )
No matching distribution found for 2.7.15

这里是python版本ls -ls /usr/bin/python*

32 -rwxr-xr-x  1 root  wheel  66880 24 Oct 12:47 /usr/bin/python
 0 -rwxr-xr-x  4 root  wheel    925 18 Aug 02:45 /usr/bin/python-config
 0 lrwxr-xr-x  1 root  wheel     75  8 Oct 21:45 /usr/bin/python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7
 0 lrwxr-xr-x  1 root  wheel     82  8 Oct 21:45 /usr/bin/python2.7-config -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
32 -rwxr-xr-x  1 root  wheel  66880 24 Oct 12:47 /usr/bin/pythonw
 0 lrwxr-xr-x  1 root  wheel     76  8 Oct 21:45 /usr/bin/pythonw2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/pythonw2.7

请建议我如何使用 Pipenv 将这个特定项目的 python 从 3.6 切换到 2.7?

一切顺利,

嘉君

【问题讨论】:

  • 请阅读该解决方案。我相信你可以在那里找到答案。 stackoverflow.com/questions/49794432/…
  • 好吧,哪个是您的系统范围的 python 并不重要。我只是不明白你的问题到底是什么。如果 pipfile 中的 python 版本是 3.6,但你想要 2.7,为什么不能将 pipfile 中的 3.6 更改为 2.7?
  • @Sraw,我尝试直接将 Pipfile 更改为 2.7。但是 sys.version 仍然返回 3.6
  • 您更改该文件,然后将您的 pipenv 的 env 也更改为 2.7。所以你可以使用 2.7 而不会检查失败。由于您之前检查失败,我相信您知道如何更改为 2.7。

标签: python pipenv


【解决方案1】:

由于多种原因,您尝试的命令 pipenv install python 2.7.15 是错误的。

首先pipenv的命令格式如下

pipenv install <package> <package>...

因此,当您运行 pipenv install python 2.7.15 时,您只是尝试安装两个分别称为 python2.7.15 的软件包,这显然不是您想要做的。

即使您使用正确的语法 pipenv install python==2.7.15 也是错误的,因为您将在另一个安装了 python 3.6 的 python 环境中安装 python 2.7.15(您的笔记本电脑上的系统版本)。

如果你想在同一个环境中安装多个版本的 Python(作为你的笔记本电脑读取)并且不弄乱系统版本,你应该使用类似“pyenv”(https://github.com/pyenv/pyenv)的东西。 Pyenv 与 pipenv 配合得很好。

您将能够使用此命令安装 Python 2.7.15

pyenv install 2.7.15

如您所见,这与您已经尝试过的命令 pipenv install python 2.7.15 不同。

此外,由于您的 Pipfile 存在问题,我建议将该文件与 Pipfile.lock 一起移动到另一个目录中(出于备份目的),然后从一个空目录开始。

同样建议这里https://pipenv.readthedocs.io/en/latest/ 最好在根文件夹中创建一个空文件夹“.venv”,将安装来自该虚拟环境的所有 python 依赖项。

所以要运行的正确命令列表是

pyenv install 2.7.15
mkdir .venv
pipenv --python 2.7.15
pipenv install <package>

我希望这能解决您的问题

【讨论】:

    【解决方案2】:

    如果两个 python 版本都在路径中,那么可能只需键入以下内容即可:

    pipenv install --python 2.7

    使用上面的命令pipenv 应该搜索python v2.7,如果找到就使用它。因此,如果路径中没有 python 2.7,您可以尝试将其添加到路径中。

    注意:

    我没有mac,但是我已经安装了4次python for windows:

    • 3.7(32 位和 64 位)
    • 3.7(32 位和 64 位)

    路径中只有py 可用,它是访问各种 蟒蛇版本。使用pipenv 时,我使用pipenv --python 3.7 和 它可以正确运行python(大概使用py -3.7-32之类的东西,这是我电脑上手动访问特定版本的唯一方法,在本例中是python 3.7 32bit)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2021-01-12
      • 2018-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多