Debian 10 に python2.7 の virtualenv をインストールする

Debian 10 に python2.7 の virtualenv をインストールする

python2.7と一緒に使いたいですvirtualenv。最近Debian 8からDebian 10にアップグレードしました。もともとDebian 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をrootとして実行する予定はありませんが、インストールには常にroot権限が必要なので、インストールにもroot権限が必要ですか?文書は指定しません。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常にこれらのエラーが発生します。

全体的に私の質問はDebian 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私のコンピュータには2つの異なるバージョンがあることがわかりました。

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

そのうちの1つは、/usr/bin/virtualenv実行時にエラーは発生しません。

$ /usr/bin/virtualenv --version
15.1.0

/usr/local/bin/virtualenvWebで検索した結果、そのうちの1つがrootとしてインストールされる必要があることがわかりました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

関連情報