• Error: Command '['/bin/python3', 'Im', 'ensurepip', 'upgrade', 'defaultpip']' returned nonzero exit status 1.


    创建虚拟环境报错

    方法一:

    1.转载https://www.jianshu.com/p/60c46e982f18
    在ubuntu16.04下使用系统自带的python3.5创建虚拟环境一切正常,但当我安装了python3.6后,安装虚拟环境会报错,下面是遇到的报错和解决办法。

    当安装完pyhton3.6后,用python3.6创建虚拟环境

    ~# python3 -m venv myenv
    

    会报如下错误:

    Error: Command '['/root/myenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
    

    再尝试用virtualenv命令创建虚拟环境,并选择python3.6

    ~# virtualenv -p python3.6 myenv01
    

    会报如下错误:

    Traceback (most recent call last):   File "/usr/lib/python3/dist-packages/virtualenv.py", line 22, in <module>     import zlib ModuleNotFoundError: No module named 'zlib'
    

    此时发现是缺少zlib,所以要安装zlib

    sudo apt-get install zlib1g-dev
    

    安装成功后,需要重新安装python3.6,即在官网下载的python3.6目录下执行安装语句:

    ./configure
    
    make
    
    sudo make install
    

    此时再次创建虚拟环境

    ~# python3 -m venv myenv
    

    不会报错,成功创建!

    方法二(推荐):

    症状

    ​ 使用 venv 创建虚拟环境失败,并报错如上。

    python -m venv ll_venv
    

    背景

    ​ Ubantu16.04

    ​ 三个python版本: python2.7 、python3.5、python3.6

    ​ python 默认为 python3.6

    解答

    ​ 缺少依赖包,安装 python3.6-venv 即可。

    sudo apt-get install python3.6-venv
    

    解决历程

    1. 首先是到网上查找解决方法,看了两篇,觉得不合适,但也受到了启发,开始自己想办法。

    2. 受到别人的启发,我先用 virtualenv 创建包,能创建成功,而别人的却无法创建,所以我未选择它的答案。

      virtualenv ll_venv
      source ll_venv/bin/activate
      pip list
      
    3. 使用 python3.5 创建虚拟环境,创建失败,输出同样的报错。但是多了解决提示:

      python3.5 -m venv ll_venv
      # 报错,但有提示
      sudo apt-get install python3-venv
      python3.5 -m venv ll_venv
      python -m venv ll_venv
      # 仍然报错,内容未变
      

      于是按提示,安装了 python3-venv。再次使用 python3.5 创建虚拟环境成功,但是python3.6仍然报错不变。

    4. 猜想:python3.5 安装个 python3-venv 就行了,python3.6 是不是要安装 python3.6-venv?试试...

    sudo apt-get install python3.6-venv
    # 安装成功
    python -m venv ll_venv
    

    成功安装 python3.6-venv !用 python3.6 创建虚拟环境也成功了。

    思考

    ​ 应该是每个 python3 版本都有各自的 venv,python3-venv 默认安装的应该是 python3.5-venv,但系统的 python3 默认为 python3.6。那只能解释为 python3-venv 由远程解释,并解释为 系统已安装的python3 的最低版本。故要在有多个python3版本的系统中指定python3版本的 venv,最好手动指定python3版本来安装。

  • 相关阅读:
    IP分类:A,B,C,D,E五类
    Makefile之“=”、":="、“+=”、“?=”
    Makefile之字符串函数
    Makefile之嵌套执行make
    vi中使用“/”查找字符
    Makefile学习之显示命令与出错命令
    【转】Unity中写GLSL(一)—— 简单的diffuse color
    关于编译GITHUB上的工程
    认识了一个新的手机游戏剖析工具- SnapDragon Profiler
    U3D资料收藏
  • 原文地址:https://www.cnblogs.com/52note/p/15236594.html
Copyright © 2020-2023  润新知