使用 pipenv 创建 virtualenv 时设置 python 版本

新手上路,请多包涵

使用使用 Debian 4.14.34-v7+ 的 Raspberry Pi,我试图将 pipenv 设置为 Python 3.6.5 作为 Python 的默认版本。我首先通过在 Pi 上编译来安装 Python 3.6(几个小时……)。创建“机器人”目录后,我安装 pipenvsudo pip3 install pipenvpipenv install --three

然后我启动 shell 并打开 Python,得到 Python 3.5.3……

 pi@raspberrypi:~/robot $ pipenv shell
Spawning environment shell (/bin/bash). Use 'exit' to leave.
. /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/activate
pi@raspberrypi:~/robot $ . /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/activate
(robot-XZ3Md9g0) pi@raspberrypi:~/robot $ python
Python 3.5.3 (default, Jan 19 2017, 14:11:04)
[GCC 6.3.0 20170124] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

然后,我将 virtualenv 更改为 pipenv --python 3.6 ,但在正确(显然)安装后,我立即收到警告,pipenv 仍需要 Python 3.5……

 (robot-XZ3Md9g0) pi@raspberrypi:~/robot $ pipenv --python 3.6
Virtualenv already exists!
Remove existing virtualenv? [Y/n]: y
Removing existing virtualenv…
Creating a virtualenv for this project…
Using /usr/local/bin/python3.6m (3.6.5) to create virtualenv…
⠋Running virtualenv with interpreter /usr/local/bin/python3.6m
Using base prefix '/usr/local'
New python executable in /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/python3.6m
Also creating executable in /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0/bin/python
Installing setuptools, pip, wheel...done.

Virtualenv location: /home/pi/.local/share/virtualenvs/robot-XZ3Md9g0
Warning: Your Pipfile requires python_version 3.5, but you are using 3.6.5 (/home/pi/.local/share/v/r/bin/python).
  $ pipenv check will surely fail.
(robot-XZ3Md9g0) pi@raspberrypi:~/robot $ python
Python 3.6.5 (default, May  3 2018, 11:25:17)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

当我第一次创建 virtualenv 时,如何设置 pipenv 以查找 Python 3.6?我可以手动进入并编辑 Pipfile,但这似乎违背了让 pipenv 为我处理事情的目的。

原文由 James Taylor 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 709
2 个回答

如果您想更改现有环境的 Python 版本,“编辑 Pipfile”是正确的方法。

如果你想使用 Python 3.6 创建一个 环境,你可以运行

pipenv install --python 3.6

而不是

pipenv install --three

这应该可以解决问题。

如果您创建新环境,请务必删除旧的 Pipfile,否则命令将失败。

原文由 ash 发布,翻译遵循 CC BY-SA 4.0 许可协议

设置 pipenv 时,您可以使用 pipenv --python 3.6 指定 Python 版本,以使用 Python3.6。

编辑 Pipfile 也可以,通过更改:

[requires] python_version = "3.6.6"

到您想要的特定 Python 版本。

如果你做了所有这些并且仍然无法从 pipenv shell 中访问正确版本的 Python,那么你可能需要检查你的 .bashrc 文件以确保你没有有一个 alias 用于特定版本的 Python。

原文由 Keenan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进