programing

pip을 사용할 수 없기 때문에 pyvenv가 작동하지 않습니다.

powerit 2023. 11. 4. 13:22
반응형

pip을 사용할 수 없기 때문에 pyvenv가 작동하지 않습니다.

며칠 전 ubuntu 14.04에서 ubuntu 16.04로 업그레이드 했습니다.을(를) 사용하여 가상 환경을 만들 때

pyvenv .venv

아니면

python3 -m venv .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

그리고.

sudo apt-get install python3.5-venv

하지만 그것은 내 문제를 해결하지 못했습니다.

python 3.6-venv 설치 시도:

sudo apt-get install python3.6-venv

로케일 문제였던 것 같습니다.다음을 실행하여 해결:

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

이 스레드에서 발견된 파이썬 로케일 오류: 지원되지 않는 로케일 설정

윈도우 리눅스 서브시스템과 우분투 18.04에서는 최근에 업그레이드를 하지 않았기 때문에 발생했습니다.

뛰었습니다.

sudo apt update
sudo apt upgrade

그리고나서sudo apt install python3-venv일했다.

또한 UTF-8 솔루션을 미리 사용해 본 적이 있음을 유의하십시오(저는 이 솔루션을 제 일부로 만들었습니다)..bashrc), 그래서 그것이 기여 요인이 될 수 있었습니다.

다른 답변 중 하나가 저번에 고쳐줬지만 Python 3.7에서는 다음과 같이 해야 했습니다.

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

그다음에

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

Ubuntu18에서 이 답변이 나왔을 때 비슷한 문제를 해결했습니다.@Niko Rikken에서 작동했던 것과 유사하지만, 새로운 PPA와 "python 3.8-distutils" 패키지가 필요하지 않습니다.venv로 새로운 python3.8 환경을 설치하고 있었는데 이미 "python3-venv"가 설치되어 있고 최신 상태이므로 해결책은 "python3.8-venv"만 설치하는 것이었습니다.

% sudo apt-get install python3.8-venv

그리고 이것이 이 대사를 작동시켰습니다.

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

제 경우에는 다음 단계가 효과가 있었습니다.

  • 우분투 18.04.4 LTS
 $ sudo apt-get install python3-venv python3.7-venv
 $ python3.7 -m venv [your_path_to_virtual_env_here]

이것이 누군가에게 도움이 된다면 우분투 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 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모든 의존성을 제거하고 싶어했습니다Python 3.7을 설치하고 다음과 같이 venv를 만들어 문제를 해결할 수 있었습니다.

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

최근에 출시된 파이썬-3.8우분투 18.04에서 이 문제가 발생했습니다.내 해결책은 필요한 을 공급하는 Deadsnakes PPA를 추가하는 것이었습니다.python3.8-distutils패키지. 더python3.8-venv패키지가 이미 저장소에 있습니다.블로그 포스트 덕분에:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
sudo apt install python3.8-distutils
sudo apt install python3.8-venv

참고: 이는 일시적인 해결책일 뿐입니다.가까운 장래에 필요한 것은python3.8-distutils패키지는 기본 Ubuntu 저장소에서 사용할 수 있습니다.

편집:

Ubuntu 20.04 LTS의 경우 Python3-distutils 패키지는 Python 3.8을 기반으로 합니다.아직 Ubuntu 18.04 LTS에서 사용할 수 있는 Python 3.8 패키지 배포 패키지가 없습니다.

이 스레드에 대한 다른 댓글에서도 언급했듯이,distutils필요 없을 수도 있습니다.제 사용 사례를 위한 것이었지만, PPA를 추가하기 전에 그 해결책을 고려해 주시기 바랍니다.

  1. 먼저 디렉토리를 만듭니다.
mkdir testing
  1. 그런 다음 testing이라는 디렉토리로 이동했습니다.
cd testing
  1. 이 디렉토리에서 다음 명령을 입력하는 경우:
python3 -m venv env

다음과 같은 오류가 발생했습니다.

파이프를 사용할 수 없으므로 가상 환경을 만들지 못했습니다.Debian/Ubuntu 시스템에서는 다음 명령을 사용하여 python3-venv 패키지를 설치해야 합니다.

apt install python3.8-venv
  1. 다음 명령을 입력하되 그 전에 기계에 설치한 python의 버전을 확인하십시오. 제 경우에는 python 3.8입니다.
sudo apt install python3.8-venv
  1. 이제 가상 환경을 만들고 도구를 "반다리" 폴더에 저장할 수 있습니다.
python3 -m venv bhandari   

참고: 이 "bhandari" 폴더의 이름을 지정할 수 있습니다. 원하는 이름은 무엇이든 지정할 수 있습니다(표준 관행은 "env"...).

  1. 이제 가상 환경을 활성화하려면 폴더의 디렉토리에서 다음 명령을 입력하면 "bhandari" 폴더에서 가상 환경을 활성화합니다.
source bhandari/bin/activate
  1. 가상 환경을 성공적으로 활성화했으면 가상 환경에서 작업 중임을 나타내는 (bandari) 단어가 표시됩니다.

이 후에 시스템의 나머지 부분에서 분리되는 것은 무엇이든 설치할 수 있습니다.

저도 같은 문제에 직면했고 해결책을 찾고 있습니다.그것은 문제에 관한 것입니다.

시스템 파이썬에 대해 Debian/Ubuntu에서 pip이 비활성화되어 있는지 확인합니다.

그리고 이것이 제 해결책입니다.

python3 -m venv myvenv --without-pip --system-site-packages

다음 명령을 시도합니다.

sudo apt install python-virtualenv
virtualenv --python=python3.6 myenv

이러한 명령은 사용자에게 적합할 수 있습니다.

다음과 같은 오류가 발생하면E: Unable to locate package python3-venv그런 다음 다음 명령을 시도합니다.

sudo apt install python3.6-venv

Python이 업데이트되었거나 Default python이 변경되었으며 venv가 이미 설치되어 있음

시스템에 설치된 venv는 이전 파이썬 버전(파이썬 3.6이라고 하자)에 의해 설치됩니다. 이것이 venv가 현재 파이썬 버전(파이썬 3.8이라고 하자)에서 작동하지 않는 이유입니다.

따라서 먼저 기본 python 또는 python3 버전을 확인합니다(현재 버전이 python3.8이라고 가정합니다).

다음과 같이 현재 python 버전(3.8)을 언급하여 가상 환경을 재설치합니다.

sudo apt-get install python3.xx-venv        >> replace xx with your current/default python version

이것이 당신이 투표하는 데 도움이 된다면, 저는 이 플랫폼에 처음입니다.

나는 특정 버전을 언급해야만 했습니다.python그리고 python 3.10을 당신 버전으로 대체합니다.

 $ sudo apt-get update -y && sudo apt-get upgrade -y
 $ sudo apt-get install python3.10-venv

가상 환경 만들기

$ python3.10 -m venv --system-site-packages Project_Name

시도:python3.* -m venv myvenv -

*를 특정 버전의 python으로 교체하는 것을 잊지 마십시오.

Ubuntu 18.04에서 pip과 venv를 포함하여 python3.8을 얻을 의도였다면:

  • sudo apt install python3.8 python3.8-venv python3-pip# python 3.8-pip 패키지가 없습니다.
  • python3.8 -m venv venv
  • source venv/bin/activate
  • python --version# -> python 3.8.0
  • pip --version# -> /home/user/venv/lib/python 3.8/site-packages에서 9.0.1 pip (python 3.8)

설치 시도python3-distutils뿐만 아니라.
파이썬 3.8의 경우 다음과 같은 것이 효과가 있었습니다.

$ apt-get install python3.8 python3.8-venv python3.8-distutils python3.8-dev

방금 데비안/우분투 시스템 몇 개에서 이 문제를 발견했습니다.위와 같은 오류입니다.

소견

다음을 사용하여 수동으로 벤브를 생성하려고 했습니다.

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']

이상해 보였습니다.에 대한 빠른 조사./usr/share/python-wheels/오류가 시사하는 바와 같이 여러 버전의 동일한 휠이 드러났습니다.나는 왜 securepip이 오직 하나의 휠 파일만 찾는지 이해할 수 없습니다.

해결책

수표 한 장dpkg -S /usr/share/python-wheels는 것을 나타냈습니다.python-pip-whlpackage가 그 파일들의 근원입니다.이것은 Ubuntu와 Debian 모두에게 해당되는 것으로 보입니다.

그래서 저는 이렇게 했습니다.

cd /usr/share
sudo mv python-wheels python-wheels.old
sudo apt reinstall python-pip-whl

그리고 효과가 있었습니다. 더 이상의 오류는 없습니다.에 더 이상 중복되는 것이 없습니다./usr/share/python-wheels

어떻게 복제품이 있었는지, 아니면 왜 파이프가 복제품에 그렇게 민감한지 전혀...패키지 업그레이드가 어딘가에서 잘못되었을 수도 있습니다.

저도 같은 문제가 있었습니다. python env는 2.7 버전과 3.6 버전 2개가 있습니다.

당신이 해야 할 일은 다음과 같습니다.

  1. pyenv 설치 관리자를 설치하여 최신 버전의 pip 설치
  2. 여기에 나와 있는 pyenv 설치 절차를 반드시 따라야 합니다.

행운을 빕니다.

실행할 때 기존 프로젝트에 대해 동일한 문제가 발생했습니다.python3 -m venv venv. 방금 우분투와 파이썬 버전을 업데이트했습니다.이미 존재하는 것을 제거한 후venv폴더 문제가 해결되었습니다.(UTF-8 솔루션도 사용해 보았습니다.)

저의 문제는 허가와 소유권에 관한 것이었습니다.현재 디렉터리의 소유자로 다른 사용자와 로그인하여 이 오류가 발생했습니다.모든 권한을 검토하고 수정한 후 venv 레귤러를 설치할 수 있었습니다.

이게 내게 효과가 있었...먼저 달려왔습니다.

sudo apt-get update

그리고나서

sudo apt-get install -y python3-venv zip

최근에 같은 문제에 부딪혔습니다.위에서 언급한 어떤 해결책도 저에게 맞지 않았습니다.저는 결국 pip3를 설치해서 작동하게 됩니다.

apt-get install python3-pip

# then run
python3.8 -m venv env

실행을 시도하는 동안 이 문제가 발생한 경우python -m build파이썬 패키지를 만들기 위해서, 이것은 아마도 당신의 신택스 문제가 있을 것이라는 것을 의미합니다.setup.cfg아니면setup.py종속성 설치에 필요한 임시 venv를 생성하는 오류를 발생시키는 파일입니다.

사용.pip wheels .오해의 소지가 적은 오류 메시지를 제공합니다.

Linux의 경우 기본적으로 venv를 설치해야 합니다.

// at first check python version
python --version

// install 
sudo apt update
sudo apt install python3.8-venv
sudo apt install python3.8-distutils

// create new env
python3 -m venv project-name
source project-name/bin/activate

python3-venv 설치 솔루션은 debian/ubuntu가 여러 패키지에 걸쳐 python 배포판을 분할했기 때문에 실제로 전체 python 설치가 없습니다.이 appt 패키지를 설치하지 않으려는 경우 여기 대안이 있습니다.

python3 -m pip install virtualenv
virtualenv .venv

이렇게 하면 완전히 작동하는 벤브가 생성됩니다.

이 모든 제안들은 저에게 도움이 되지 않았습니다.

$ 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 python3 - a python3/bioonic 3.6.5-3 amd64로 더 나은 목록을 보여주었습니다.

와 함께sudo apt-get install python3-venv/bionic저는 pythno3-venv를 설치할 수 있었고 모든 것이 작동했습니다.

내 경우엔 달리기가sudo apt-get install python3.8-venv성공했지만 실행할 때 동일한 오류가 나타납니다.python3 -m venv .venv.

마지막으로 이 명령어는 로케일을 변경하지 않고 작동합니다.

python3.8 -c 'import venv; venv.create(".venv", with_pip=True)'

우분투 14.04에 대한 나의 대답은 다음과 같습니다.저는 다양한 파이썬 버전으로 venv와 pip 작업을 할 수 있었습니다.세부사항:

  • 3.4: 우분투 14.04에는 파이썬 3.4(패키지 파이썬 3.4 등)가 있습니다.작동:

    $ sudo apt-get install python3.4 python3.4-dev python3.4-venv gcc libc6-dev
    $ mkdir /tmp/try3.4
    $ python3.4 -m venv /tmp/try3.4
    $ . /tmp/try/bin/activate
    (try3.4) $ pip install print-hello-world
    ...
    (try3.4) $ print-hello-world
    Hello World!
    

    한다면python3.4-venv에서 제거됩니다.apt-get install위의 명령을 실행한 다음python3.4 -m venv질문에서와 동일한 오류 메시지를 표시합니다.그러나 오류 메시지는 다음과 같이 언급합니다.apt-get install python3-venv해결할 수 있는 방법이 없습니다. 그런 패키지는 없습니다.(올바른 패키지 이름은python3.4-venv.)

    Python 3.4는 상당히 오래된 것이며 PyPI에서 사용 가능한 일부 Python 패키지(pip을 통해)는 작동하지 않습니다.

  • 3.5: 죽은 뱀 저장소에서 설치할 수 있습니다.작동:

    $ sudo add-apt-repository ppa:deadsnakes/ppa
    $ sudo apt-get update
    $ sudo apt-get install python3.5 python3.5-dev python3.5-venv gcc libc6-dev
    $ mkdir /tmp/try3.5
    $ python3.5 -m venv /tmp/try
    $ . /tmp/try/bin/activate
    (try3.5) $ pip install print-hello-world
    ...
    (try3.5) $ print-hello-world
    Hello World!
    
  • 3.6: Ditto, 죽은 뱀 저장소에서 설치할 수 있습니다.작동:

    $ sudo add-apt-repository ppa:deadsnakes/ppa
    $ sudo apt-get update
    $ sudo apt-get install python3.6 python3.6-dev python3.6-venv gcc libc6-dev
    $ mkdir /tmp/try3.6
    $ python3.6 -m venv /tmp/try3.6
    $ . /tmp/try3.6/bin/activate
    (try3.6) $ pip install print-hello-world
    ...
    (try3.6) $ print-hello-world
    Hello World!
    
  • 3.7: 작동이 안 돼요.pip install실패로 돌아가다import _ssl, 그리고 데드 스네이크 레포의 python3.7에는 해당 모듈이 없습니다. 우분투 14.04는 Python 3.7이 지원하지 않는 OpenSSL의 이전 버전과 함께 제공되기 때문입니다.자세한 내용은 이 버그를 참조하십시오.

  • 3.8--: Ubuntu 또는 deadsnakes 저장소에 이러한 Python 버전을 위한 Ubuntu 14.04 패키지가 없습니다.

저의 경우 아직 가상 환경에 있지만 이를 빠르게 인지하지 못했기 때문에 명령이 실패했습니다.

그런 경우 전화해 보십시오.deactivate.

저는 sudo 권한이 없고 python3를 사용해야 합니다.5:

  1. virtualenv 설치: pip3 virtualenv
  2. pip이 없는 virtualenv 생성: python3 -mv --without-pip <path>
  3. 올바른 pip 부트스트랩 다운로드: https://bootstrap.pypa.io/pip/3.5/get-pip.py
  4. 실행: <path>/bin/ python3 get-pip.py

source <path>/bin/activate'를 수행하여 작업 환경을 얻었습니다.

언급URL : https://stackoverflow.com/questions/39539110/pyvenv-not-working-because-ensurepip-is-not-available

반응형