데비안 10에 python2.7의 virtualenv 설치

데비안 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를 설치해야 합니까?내 홈 디렉토리에 있나요? 저는 이 컴퓨터의 유일한 사용자인데 이 컴퓨터 를 작동시키려면 좀 더 공개적인 장소에 pip있어야 할지, 아니면 더 공개적인 곳에 있어야 할지 잘 모르겠습니다 . install 을 /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

( 해당되는 경우 python3-pipPython 3 지원 도 있습니다).

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

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

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

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

답변2

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

$ 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

관련 정보