Error: Command '['/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero 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版本來安裝。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM