Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为什么Pipenv不拿我的Pyenv版本?

为什么Pipenv不拿我的Pyenv版本?
EN

Stack Overflow用户
提问于 2020-10-03 13:07:08
回答 3查看 3.2K关注 0票数 5

我的系统Python版本是3.8.5,但是我使用pyenv来管理一个额外的版本3.6.0,以反映我的项目部署到的服务器版本。以前我使用虚拟环境+虚拟包装器来管理我的虚拟环境,但是我听说过关于pipenv的很棒的事情,我想我可以试一试。在我尝试使用Python3.6.0之前,这一切都很棒。流程是这样的:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ mkdir test_project && cd test_project
$ pyenv shell 3.6.0
$ pipenv install django
Creating a virtualenv for this project…
Pipfile: /home/user/projects/test_project/Pipfile
Using /home/user/.pyenv/shims/python (3.6.0) to create virtualenv…
⠸ Creating virtual environment...created virtual environment CPython3.8.5.final.0-64 in 130ms
  creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/test_project-eAvoynKo-/home/user, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
    added seed packages: pip==20.2.3, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

✔ Successfully created virtual environment! 
Traceback (most recent call last):
  File "/home/user/.pyenv/versions/3.6.0/bin/pipenv", line 11, in <module>
    sys.exit(cli())
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 829, in __call__
    return self.main(*args, **kwargs)
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/vendor/click/decorators.py", line 21, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/cli/command.py", line 252, in install
    site_packages=state.site_packages
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/core.py", line 1928, in do_install
    site_packages=site_packages,
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/core.py", line 580, in ensure_project
    pypi_mirror=pypi_mirror,
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/core.py", line 512, in ensure_virtualenv
    python=python, site_packages=site_packages, pypi_mirror=pypi_mirror
  File "/home/user/.pyenv/versions/3.6.0/lib/python3.6/site-packages/pipenv/core.py", line 986, in do_create_virtualenv
    with open(project_file_name, "w") as f:
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/.local/share/virtualenvs/test_project-eAvoynKo-/home/user/.pyenv/shims/python/.project'

我遇到了前面的问题Pipenv不认识Pyenv版本吗?,并在我的.bashrc文件中设置了环境变量PIPENV_PYTHON="$PYENV_ROOT/shims/python。都没有用。

使用系统PythonVersion3.8.5可以完美地工作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ pyenv install django
Creating a virtualenv for this project…
Pipfile: /home/user/projects/test_project/Pipfile
Using /home/user/.pyenv/shims/python (3.8.5) to create virtualenv…
⠹ Creating virtual environment...created virtual environment CPython3.8.5.final.0-64 in 114ms
  creator CPython3Posix(dest=/home/user/.local/share/virtualenvs/test_project-eAvoynKo-/home/user/.pyenv/shims/python, clear=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/user/.local/share/virtualenv)
    added seed packages: pip==20.2.2, setuptools==50.3.0, wheel==0.35.1
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator

✔ Successfully created virtual environment! 
Virtualenv location: /home/user/.local/share/virtualenvs/test_project-eAvoynKo-/home/user/.pyenv/shims/python
Creating a Pipfile for this project…
Installing django…
Adding django to Pipfile's [packages]…
✔ Installation Succeeded 
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Building requirements...
Resolving dependencies...
✔ Success! 
Updated Pipfile.lock (a6086c)!
Installing dependencies from Pipfile.lock (a6086c)…
     ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/000:00:00
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.

更新

虽然我仍然无法让它识别用pyenv shell x.x.x激活的python版本,但是通过删除PIPENV_PYTHON环境变量和使用pipenv install --python 3.6 pipenv创建一个新的virtualenv确实可以识别已安装的pyenv版本。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-11-20 04:01:26

pipenv不尊重pyenv localpyenv global (参考文献)

也许它也不尊重pyenv shell

我通常按照您所做的做,指定像pipenv install --python 3.7这样的python

票数 7
EN

Stack Overflow用户

发布于 2020-11-20 09:17:19

您可以尝试这样做,使Pipenv遵循Pyenv Python版本:

将Pipenv直接指向shell配置文件中的Pyenv (这是/.zshrc)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export PIPENV_PYTHON="$PYENV_ROOT/shims/python"

备注:

  1. 确保在shell配置文件中正确设置了PYENV_ROOT
  2. 如果您用另一个版本的python创建了pipfile和pipfile.lock,您可能不得不重新构建它们。

答案来自Pipenv博士这个堆栈溢出的答案和bani(这个问题的另一个答案)。

票数 4
EN

Stack Overflow用户

发布于 2021-11-09 16:39:09

在如何设置.bashrc方面,pyenv中有不同的版本。这个对我有用

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64189006

复制
相关文章
为python版本抓狂,试下pyenv吧安装pyenv版本切换pyenv-virtualenv小结
写python时,最烦的事莫过于版本切换。python3已经很成熟了,但很多生产项目依然用的是2.7版本,本地环境经常需要切换版本。此外,不同项目的依赖也不同,有时还会造成冲突。这些杂七杂八的问题让初学者很烦躁,pyenv正是解决此类问题的神器。
章鱼喵
2018/09/26
1.4K0
为python版本抓狂,试下pyenv吧安装pyenv版本切换pyenv-virtualenv小结
python版本管理(python环境隔
这将是一篇比较短的文章。 我发文向来注重文章质量,营养不够的宁可不发,但是我相信很多人需要这篇文章。 之所以要去搞清楚这个问题,是我在把 vscode 的 inspector 设置为 pipenv 生成的虚拟环境是遇到了问题。2018-2月 vscode 添加了对 pipenv 的支持,检测到 Pipfile 以后,会将环境自动切换到当前项目的虚拟环境。但是我的咋就不行呢!我就开始折腾。这是一个比较漫长相信你们都不想经历的过程。希望你们搜到的第一篇文章就是这篇。相关关键字如下: vscode 对 pipenv 的支持, vscode 找不到 pipenv 创建的虚拟环境, vscode pipenv, pipenv vscode ...等等 希望能给你带来更多营养,我多说点 不知不觉,上面的内容可能要占本文一半以上了。。。 pyenv 和 pipenv 应该是目前主流的 python 版本控制和虚拟环境的工具了,下面内容都基于这两个。
py3study
2020/01/20
1.1K0
python的各种包环境管理工具 virtualenv,pyenv,pipenv
如果你是第一次接触python的环境管理,那你一定会头晕,因为有太多的环境管理工具包,多到你不知道该选择哪一个作为自己的python环境管理工具。
程序那些事儿
2023/03/07
7530
python的各种包环境管理工具 virtualenv,pyenv,pipenv
使用pyenv切换python版本
关键代码 which python3.6 brew install pyenv pyenv install --list // 可安装的python版本 pyenv install -v 2.7.10 // 安装python pyenv rehash // 更新 pyenv versions // 查看已经安装的python版本 pyenv global 2.7.10 // 切换python版本 pyenv global system // 切换原来版本 python --version LINKS
tea9
2022/07/16
3.5K0
pyenv管理多版本python
安装不同的python版本并不是一件易事,更何况想在同一主机上来回切换不同版本的python是难上加难!大家都知道多版本会导致互相干扰,但是不是不不能解决呢??
py3study
2020/01/06
5350
pipenv快速入门
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/82891847
乐百川
2019/07/02
5560
python多版本管理(pyenv)
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
py3study
2020/01/09
6070
Python版本管理利器--pyenv
设置局部python版本,将Python版本写进当前目录下的.python-version 文件,这个版本号会覆盖全局的版本号,可以被PYENV_VERSION或者pyenv shell命令覆盖。
用户2936342
2018/08/27
7580
virtualenvwrapper + pyenv 打造多版本 Python 环境
前言 面对多个 Python 开发项目时,需要针对不同的项目创建相应的开发环境。通常情况下,使用 virtualenv 创建一个虚拟的独立 Python 环境,但是 virtualenv 创建的环境相对分散不便于管理。这里推荐使用 virtualenvwrapper 来创建集中的便于管理的 Python 环境,同时可以结合 pyenv 为不同的项目选定不同的 Python 版本。 virtualenvwrapper 安装 通过 pip 安装 virtualenvwrapper(Ps: 记住加上 sudo)
木制robot
2018/04/11
1.5K0
你应该学会的Python多版本管理工具P
可以看到,是从pyenv也是官方网站下载编译安装的。warning提示的是害怕通过pyenv安装的python会使用提示的文件中的配置,从而影响新安装的python使用其中的配置,脱离了pyenv对python版本的管理目的。 Tips: 新手要明确一个概念,使用pyenv时是从python发行版的官网新安装的,和现有系统中的python版本没有一点关系,当前系统的旧版本依然好好的呆在它原来的位置。有了pyenv,系统有的旧版本被pyenv当作system版本来看待。pyenv安装的新版本都是放在了~/.pyenv/versions/目录下的。pyenv根据其设计原理就使用versions目录下的正确版本了。
py3study
2020/01/17
3K0
Python-包管理器
一般我们都是使用pip安装三方库,用起来很方便。但是所有项目的依赖都在一个环境中。
码客说
2021/11/30
2K0
Python-包管理器
pyenv 安装(管理多个版本pyth
    yum install -y gcc make patch gdbm-devel openssl-devel sqlite-devel zlib-devel bzip2-devel readline-devel
py3study
2020/01/08
1.3K0
Python虚拟环境介绍
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/u011054333/article/details/82892075
乐百川
2019/07/02
6680
Python虚拟环境介绍
我的Python环境设置
网上看到一篇博文,我突然也想写一下自己正在使用的Python环境设置,以及对应的工具链。众众众所周知,Python环境管理是个很大很大的坑,坑里面有无数新人or老司机的尸体。而Python环境管理的工具又五花八门,所以可能每个人的设置都不尽相同。我列出的我使用的工具链,至少最大地满足了自己的需求,但不一定满足所有人的需求。但我自认为在Python环境管理方面颇有心得,所以有一定的参考价值。
岂不美哉Frost
2019/11/29
1.2K0
Pipenv项目化你的python应用
使用pipenv进行包管理来开发python项目,pipenv提供了功能:进行第三方packages安装,生成项目包依赖文件及在项目开发过程中对依赖包的curd操作的版本记录和隔离出项目python虚拟环境。
py3study
2020/01/17
1.1K0
Python多版本神器-Pyenv
使用pyenv可以在一个操作系统上使用多个python版本,自由切换,无比顺畅。它的使用不依赖于Python,是一个简单、独立的纯 shell 脚本工具。
py3study
2020/01/06
5080
Python多版本神器-Pyenv
pyenv安装与使用-多版本python
由于centos或者RHEL操作系统自带的python一般都比较低,centos6 自带的python版本都是2.6.6,但是现在一般python使用的版本都是2.7版本,以前总在操作上源码升级python,但是这样会导致的yum等利用python使用的命令错误,虽然修改yum源码可以解决问题,但是总感觉很麻烦,而且一个个命令文件的修改也感觉很LOW啊!
py3study
2020/01/07
1.2K0
pycharm使用虚拟环境_pycharm配置虚拟环境
Pipenv,它的项目简介为 Python Development Workflow for Humans,是 Python 著名的 requests 库作者 kennethreitz 写的一个包管理工具,它可以为我们的项目自动创建和管理虚拟环境并非常方便地管理 Python 包,现在它也已经是 Python 官方推荐的包管理工具。
全栈程序员站长
2022/09/27
1.2K0
pycharm使用虚拟环境_pycharm配置虚拟环境
Pipenv – 超好用的 Pytho
pipenv 是 python 官方推荐的包管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,类似于 php 中的 composer。
py3study
2020/01/03
1.5K0
如何随意切换Python版本
首先第一个问题:Python版本的问题,Python 2.x 和Python 3.x 版本区别还是比较大的,版本多了不易管理。
没有故事的陈师傅
2022/05/23
1.3K0

相似问题

Pipenv不认识Pyenv版本吗?

50

pipenv + pyenv + jupyter

10

Dockerfile构建失败- Pipenv和Pyenv多个Python版本找到

10

pyenv下的pipenv未能在pyenv下升级其实例。

18

为什么pipenv会告诉我python的错误版本?

17
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文