
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 をインストールする場所でしょうか?ホーム ディレクトリの下ですか? 私はこの PC の唯一のユーザーですが、正常に動作させるためにはpip
内か、もっとパブリックな場所のどちらに置くべきかわかりません。インストールに を使用するべきでしたか? Python を root として実行するつもりはありませんが、インストールには常に root が必要なので、インストールにも を使用するべきでしょうか? ドキュメントには明記されていませんでした。/usr/share/
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
常にこれらのエラーが発生します。
python2.7
全体として、私の質問は、Debian 10 に、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
どのように認識するのかはわかりません。bash にはキャッシュがあるのでしょうか? とにかく、次にインストールして、debian 10 リポジトリから:/home/me/.local/bin/pip
pip
virtualenv
$ 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
私の PC にはの 2 つの異なるバージョンがあることがわかりました。
$ find /usr/ -iname "virtualenv" | grep bin
/usr/local/bin/virtualenv
/usr/bin/virtualenv
/usr/bin/virtualenv
実行してもエラーは発生しません:
$ /usr/bin/virtualenv --version
15.1.0
そして、Web 検索をしてみたところ、 のものはroot として/usr/local/bin/virtualenv
インストールされているはずだということがわかりました。そこで、 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