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.py
pip
apt
pip
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
필요한 경우 모든 것을 제거하고 다시 시작해도 괜찮습니다.pip
virtualenv
지시를 따르다스티븐 지터아래 답변에서는 이전에 설치한 pip
버전을 제거하려고 시도했지만 이로 인해 몇 가지 새로운 오류가 발생했습니다. 내가 무슨 짓을 했는지 자세히 설명해줄게...virtualenv
get-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/pip
bash에 캐시가 있을까요? 어쨌든, 다음 설치 pip
및 virtualenv
debian 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-pip
Python 3 지원 도 있습니다).
pip
홈 디렉토리에 설치된 버전 과 그 밖의 다른 버전을 제거해야 할 수도 있습니다 .virtualenv
PATH
/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