Python pyvenv不工作,因为EnsureIP不可用

Python pyvenv不工作,因为EnsureIP不可用,python,virtualenv,Python,Virtualenv,几天前我从ubuntu 14.04升级到了ubuntu 16.04。 当我尝试使用创建虚拟环境时 pyvenv .venv 或 有一个错误: The virtual environment was not created successfully because ensurepip is not available. On Debian/Ubuntu systems, you need to install the python3-venv package using the followi

几天前我从ubuntu 14.04升级到了ubuntu 16.04。 当我尝试使用创建虚拟环境时

pyvenv .venv

有一个错误:

The virtual environment was not created successfully because ensurepip is not
available.  On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.

    apt-get install python3-venv

You may need to use sudo with that command.  After installing the python3-venv
package, recreate your virtual environment.

Failing command: ['/home/user/.venv/bin/python3.5', '-Im', 'ensurepip', '--upgrade', '--default-pip']
我两个都试过了

sudo apt-get install python3-venv


但这并没有解决我的问题。

这似乎是一个区域设置问题。通过执行以下步骤解决:

export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8"
sudo dpkg-reconfigure locales

在此线程上找到

请尝试安装python3.6-venv:

sudo apt-get install python3.6-venv

我也遇到了同样的问题——PythonEnv有2.7和3.6版本

您需要做的只是:

  • 通过安装来安装最新版本的pip
  • 确保按照安装pyenv found的步骤进行操作

  • 祝你好运

    上次,另一个答案为我解决了这个问题,但在Python 3.7中,我不得不做:

    apt install python3-pip python3-setuptools python3.7-venv
    

    python3.7 -m venv /path/to/venv
    

    如果这对其他人有帮助的话,我在Ubuntu 18.04上也遇到了同样的错误。设置区域设置不起作用,尝试安装
    python3-venv
    时出现错误:

    $ sudo apt-get install python3-venv
    Reading package lists... Done
    Building dependency tree
    Reading state information... Done
    Some packages could not be installed. This may mean that you have
    requested an impossible situation or if you are using the unstable
    distribution that some required packages have not yet been created
    or been moved out of Incoming.
    The following information may help to resolve the situation:
    
    The following packages have unmet dependencies:
     python3-venv : Depends: python3.6-venv (>= 3.6.5-2~) but it is not going to be installed
                    Depends: python3 (= 3.6.5-3) but 3.6.7-1~18.04 is to be installed
    E: Unable to correct problems, you have held broken packages.
    
    apt存储库似乎有两个版本的python:

    $ apt list python3 -a
    python3/bionic-updates,now 3.6.7-1~18.04 amd64 [installed]
    python3/bionic 3.6.5-3 amd64
    
    我试图安装
    Python3.6.5-3
    ,但apt想卸载每个依赖项。我能够通过安装Python3.7并使用以下内容创建venv来解决此问题:

    $ sudo apt-get install python3.7 python3.7-venv
    $ python3.7 -m venv my_venv
    

    在WindowsLinux子系统和Ubuntu18.04下,这是因为我最近没有升级

    我跑:

    sudo apt update
    sudo apt upgrade
    

    然后
    sudo-apt-install python3-venv
    工作了


    请注意,我之前也尝试过这种方法(我将其作为我的
    .bashrc
    的一部分),因此这可能是一个促成因素。

    尝试:
    python3.*-m venv myvenv-


    别忘了用特定版本的python替换*我在执行
    python3-m venv
    时遇到了与现有项目相同的问题。我刚刚更新了我的Ubuntu和Python版本。删除已有的
    venv
    文件夹后,问题得到解决。(我也试过了。)

    为我工作


    编辑:我很想知道到底是什么问题,但我不知道。我试着运行发问者所描述的命令,但它给出了错误,然后我更新了命令,它成功了-D

    在最近发布的Python-3.8中,我在Ubuntu 18.04上遇到了这个问题。我的解决方案是添加提供所需的
    python3.8-distutils
    包的。
    python3.8-venv
    包已在存储库中。感谢:

    sudo添加apt存储库ppa:deadsnakes/ppa
    sudoapt更新
    sudo apt安装python3.8
    sudo apt安装python3.8-distutils
    sudo apt安装python3.8-venv
    
    注意:这只是一个临时解决方案。在不久的将来,所需的
    python3.8-distutils
    包可能会在默认的Ubuntu存储库中提供

    编辑:

    对于Ubuntu 20.04 LTS,该软件包基于Python 3.8。到目前为止,还没有适用于Ubuntu18.04 LTS的Python3.8包distutils包


    正如在该线程的其他注释中所述,
    distutils
    可能不是必需的。这是我的用例,但是在添加额外的PPA之前请考虑这个解决方案

    解决UBUTU18上出现的类似问题。它与为@Niko Rikken工作的类似,只是它实际上不需要任何新的PPA和“python3.8-distutils”包。我正在用venv安装新的python3.8环境,并且我已经安装了“python3 venv”并且是最新的,所以我的解决方案是只安装“python3.8-venv”:

    这让这句话起作用了:

    % python3.8 -m venv ~/envs/new_env
    % source ~/envs/new_env/bin/activate
    

    如果您打算在Ubuntu 18.04上安装python3.8,包括pip和venv:


    • sudo apt安装python3.8 python3.8-venv python3-pip
      #没有python3.8-pip软件包
    • python3.8-m-venv-venv
    • source-venv/bin/activate
    • python--version
      #->python 3.8.0
    • pip--version
      #->pip 9.0.1 from/home/user/venv/lib/python3.8/site-packages(python 3.8)

      • 所有这些建议对我都没有帮助

        $ apt list python3 -a
        python3/now 3.6.7-1~18.04 amd64 [installed,local]
        python3/bionic 3.6.5-3 amd64
        
        于是我做了:
        sudo apt get install python3/bionic

        现在我有了python 3.6.5,apt list显示了一个更好的列表: $apt list蟒蛇3-a 蟒蛇3/仿生3.6.5-3 amd64


        使用
        sudo apt get install python3-venv/bionic
        我可以安装pythno3-venv,一切正常。

        在我的情况下,接下来的步骤有效:

        • Ubuntu 18.04.4 LTS
        $sudo apt get安装python3-venv python3.7-venv
        $python3.7-m venv[您的路径到虚拟环境]
        
        我的问题与权限和所有权有关。 我是以其他用户作为当前目录的所有者登录的,这导致了此错误。
        在检查并修复所有权限后,我能够安装venv regularl。在我的情况下,运行
        sudo apt get install python3.8-venv
        成功,但在运行
        python3-m venv.venv
        时显示相同的错误

        最后,该命令在不更改区域设置的情况下运行


        python3.8-c'导入静脉;venv.create(“.venv”,with_pip=True)”

        我也面临同样的问题,我正在寻找解决方案。问题在于:

        EnsureIP在系统python的Debian/Ubuntu中被禁用

        这是我的解决方案:

        python3-m-venv-myvenv——不带pip——系统站点包
        
        所有这些对我都不起作用。 我正在使用ubuntu 18.04。 刚刚完全卸载了anaconda,一切正常。以防对任何人都有帮助。 要卸载的命令,请执行以下操作:

        这对我有用。。。 首先,我跑了

        sudo-apt-get-update

        然后


        sudo-apt-get-install-y python3-venv-zip
        尝试以下命令:

        sudo apt install python-virtualenv
        virtualenv --python=python3.6 myenv
        
        sudo apt install python3.6-venv
        
        这些命令可能适用于您

        如果您遇到任何错误,如
        E:无法找到软件包python3-venv
        然后尝试以下命令:

        sudo apt install python-virtualenv
        virtualenv --python=python3.6 myenv
        
        sudo apt install python3.6-venv
        
        rm -rf ~/anaconda3
        export PATH="/home/linuxize/anaconda3/bin:$PATH" 
        rm -rf ~/.condarc ~/.conda ~/.continuum
        
        sudo apt install python-virtualenv
        virtualenv --python=python3.6 myenv
        
        sudo apt install python3.6-venv
        
        sudo apt-get install python3.xx-venv        >> replace xx with your current/default python version
        
        python -m venv venvdir
        
        venvdir/bin/python -m ensurepip
        
        Traceback (most recent call last):
            File "/usr/lib/python3.9/runpy.py", line 197, in _run_module_as_main                       
                return _run_code(code, main_globals, None,                                             
            File "/usr/lib/python3.9/runpy.py", line 87, in _run_code                                  
                exec(code, run_globals)                                                                
            File "/usr/lib/python3.9/ensurepip/__main__.py", line 5, in <module>                       
                sys.exit(ensurepip._main())                                                            
            File "/usr/lib/python3.9/ensurepip/__init__.py", line 266, in _main                        
                return _bootstrap(                                                                     
            File "/usr/lib/python3.9/ensurepip/__init__.py", line 166, in _bootstrap                  
                 copy_wheels(dependencies, venv_wheel_dir, sys.path)                                    
            File "/usr/lib/python3.9/ensurepip/__init__.py", line 144, in copy_wheels                  
                assert len(wheel_names) == 1, wheel_names                                            
        
        AssertionError: ['/usr/share/python-wheels/pyparsing-2.2.0-py2.py3-none-any.whl', '/usr/s
        hare/python-wheels/pyparsing-2.4.7-py2.py3-none-any.whl']
        
        cd /usr/share
        sudo mv python-wheels python-wheels.old
        sudo apt reinstall python-pip-whl