Debian 10에 python2.7용 virtualenv 설치

Debian 10에 python2.7용 virtualenv 설치

python2.7와 함께 사용하고 싶습니다 virtualenv. 최근에 데비안 8에서 데비안 10으로 업그레이드했습니다. 원래 데비안 8이 있고 설치 python2.7되어 있었지만 pip설치 중에 문제가 발생하여 지금은 pip. 하지만 아직 python2.7설치되어 있습니다.

$ python --version
Python 2.7.16

그래서 방금 다음과 같이 설치했습니다 pip.

$ cd /tmp
$ wget https://bootstrap.pypa.io/get-pip.py
$ python get-pip.py

이제 pip가 설치되어 있는 것을 볼 수 있습니다.

$ which pip
/home/me/.local/bin/pip
$ pip --version
pip 20.0.2 from /home/me/.local/lib/python2.7/site-packages/pip (python 2.7)

첫째, 여기에 pip를 설치해야 합니까?내 홈 디렉터리 아래에 있나요? 저는 이 PC의 유일한 사용자입니다. 하지만 제대로 작동하려면 더 공개적인 장소에 pip있어야 하는지 잘 모르겠습니다 . 를 설치 /usr/share/해야 합니까 ? Python을 루트로 실행할 계획은 없지만 설치에는 항상 루트가 필요하므로 설치에도 루트 가 있어야 할까요? 문서에는 지정되지 않았습니다.sudo python /tmp/get-pip.pypipaptpip

어쨌든 다음으로 pip최신 버전으로 업데이트하고 설치해 보았습니다 virtualenv.

$ pip install -U pip
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Defaulting to user installation because normal site-packages is not writeable
Requirement already up-to-date: pip in ./.local/lib/python2.7/site-packages (20.0.2)

$ pip install virtualenv
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: virtualenv in ./.local/lib/python2.7/site-packages (15.1.0)

모두 좋은 것 같습니다. 하지만 내가 가지고 있는 버전을 확인하려고 하면 virtualenv실패합니다.

$ virtualenv --version
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 6, in <module>
    from virtualenv.__main__ import run_with_catch
ImportError: No module named __main__

그리고 사용하려고 하면 virtualenv항상 이러한 오류가 발생합니다.

그래서 전반적으로 제 질문은 데비안 10에서 를 올바르게 설치하는 방법에 관한 것입니다 . python2.7필요한 경우 모든 것을 제거하고 다시 시작해도 괜찮습니다.pipvirtualenv


지시에 따라스티븐 키트아래 답변에서는 이전에 으로 설치한 pip의 버전을 제거하려고 시도했지만 이로 인해 몇 가지 새로운 오류가 발생합니다. 제가 한 일을 정확하게 설명하겠습니다.virtualenvget-pip.py

첫 번째 제거 virtualenv:

$ pip uninstall virtualenv
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Found existing installation: virtualenv 15.1.0
Uninstalling virtualenv-15.1.0:
  Would remove:
    /home/me/.local/bin/virtualenv
    /home/me/.local/lib/python2.7/site-packages/virtualenv-15.1.0.dist-info/*
    /home/me/.local/lib/python2.7/site-packages/virtualenv.py
    /home/me/.local/lib/python2.7/site-packages/virtualenv_support/*
Proceed (y/n)? y
  Successfully uninstalled virtualenv-15.1.0

괜찮은 것 같습니다. 그런 다음 pip를 제거합니다.

$ python -m pip uninstall pip
DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. A future version of pip will drop support for Python 2.7. More details about Python 2 support in pip, can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support
Found existing installation: pip 20.0.2
Uninstalling pip-20.0.2:
  Would remove:
    /home/me/.local/bin/pip
    /home/me/.local/bin/pip2
    /home/me/.local/bin/pip2.7
    /home/me/.local/lib/python2.7/site-packages/pip-20.0.2.dist-info/*
    /home/me/.local/lib/python2.7/site-packages/pip/*
Proceed (y/n)? y
  Successfully uninstalled pip-20.0.2

$ pip --version
bash: /home/me/.local/bin/pip: No such file or directory
$ ls -a ~/.local/bin
.  ..  chardetect  easy_install  easy_install-2.7  flake8  pew  pipenv  pycodestyle  pyflakes  virtualenv-clone

그것도 괜찮은 것 같습니다. 해당 파일이 존재하지 않기 때문에 bash가 어떻게 그렇게 pip해야 하는지 잘 모르겠습니다 . /home/me/.local/bin/pipbash에 캐시가 있을까요? 어쨌든, 다음 설치 pipvirtualenvdebian 10 저장소에서:

$ sudo apt install python-pip virtualenv
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  python3-distutils python3-lib2to3 python3-virtualenv
The following NEW packages will be installed:
  python-pip python3-distutils python3-lib2to3 python3-virtualenv virtualenv

하지만 현재 가지고 있는 버전을 확인하려고 하면 virtualenv실패합니다.

$ virtualenv --version
Traceback (most recent call last):
  File "/usr/local/bin/virtualenv", line 6, in <module>
    from virtualenv.__main__ import run_with_catch
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/__init__.py", line 3, in <module>
    from .run import cli_run
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/run/__init__.py", line 6, in <module>
    from virtualenv.run.app_data import AppDataAction
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/run/app_data.py", line 8, in <module>
    from virtualenv.util.lock import ReentrantFileLock
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/util/lock.py", line 11, in <module>
    from virtualenv.util.path import Path
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/util/path/__init__.py", line 3, in <module>
    from ._pathlib import Path
  File "/usr/local/lib/python2.7/dist-packages/virtualenv/util/path/_pathlib/__init__.py", line 42, in <module>
    from pathlib2 import Path
ImportError: No module named pathlib2

답변1

일을 망치지 않으려면밖의virtualenvs의 경우 패키지 버전을 사용하는 것이 좋습니다.

sudo apt install python-pip virtualenv

(해당하는 경우 Python 3 지원과 함께 python3-pip)

홈 디렉토리에 설치된 의 버전과 외부에 있는 다른 버전을 pip제거 해야 할 수도 있습니다 .virtualenvPATH/usr/bin

virtualenvs를 설정할 때 Python 2.7을 지정할 수 있습니다.

virtualenv -p /usr/bin/python2.7 ...

그리고 virtualenv옳은 일을 할 것입니다.

답변2

추가 조사와 논의를 거쳐스티븐 키트virtualenv내 PC에 두 가지 다른 버전이 있다는 것을 발견했습니다 .

$ find /usr/ -iname "virtualenv" | grep bin
/usr/local/bin/virtualenv
/usr/bin/virtualenv

내가 /usr/bin/virtualenv실행할 때 오류가 발생하지 않습니다.

$ /usr/bin/virtualenv --version
15.1.0

그리고 웹 검색을 해보니 에 있는 것이 루트로 /usr/local/bin/virtualenv설치되어 있는 것으로 나타났습니다 pip. 그래서 pip루트로 제거했습니다 .

$ sudo pip uninstall virtualenv
Uninstalling virtualenv-20.0.13:
  Would remove:
    /usr/local/bin/virtualenv
    /usr/local/lib/python2.7/dist-packages/virtualenv-20.0.13.dist-info/*
    /usr/local/lib/python2.7/dist-packages/virtualenv/*
Proceed (y/n)? y
  Successfully uninstalled virtualenv-20.0.13

이제 모든 것이 잘 되었습니다.

$ which virtualenv
/usr/bin/virtualenv
$ find /usr/ -iname "virtualenv" | grep bin
/usr/bin/virtualenv

관련 정보