web-dev-qa-db-ja.com

ubuntu 16.04のpython3.6でvirtualenvを使用するには?

Python 2.7およびPython 3.5に付属するUbuntu 16.04を使用しています。 Python 3.6をインストールし、alias python3=python3.6を介してpython3にpython3をシンボリックリンクしました。

次に、Sudo -H pip3 install virtualenvを使用してvirtualenvをインストールしました。チェックすると、virtualenvが"/usr/local/lib/python3.5/dist-packages"の場所にインストールされたため、python3 -m venv ./venv1を使用してvirtualenvを作成しようとすると、エラーがスローされます。

Error Command: ['/home/wgetdj/WorkPlace/Programming/Python/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

私は何をすべきか?

24
wgetDJ

通常、$ python3 -m venv myvenvを使用して新しいvirtualenvを作成します(ここでmyvenvはvirtualenvの名前です)。

私の場合と同様に、システムにpython3.5python3.6の両方がある場合、エラーが発生する可能性があります。

注: Debian/Ubuntuの一部のバージョンでは、次のエラーが表示される場合があります。

 The virtual environment was not created successfully because ensure pip is not available.  On Debian/Ubuntu systems, you need to install the python3-venv package using the following command.
      apt-get installpython3-venv  
 You may need to use Sudo with that command.  After installing the python3-venv package, recreate your virtual environment. 

この場合、上記の手順に従って、python3-venvパッケージをインストールします。

$ Sudo apt-get install python3-venv

注: Debian/Ubuntuの一部のバージョンでは、現在このような仮想環境を開始すると次のエラーが発生します。

Error Command: ['/home/wgetdj/WorkPlace/Programming/Python/myvenv/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

これを回避するには、代わりにvirtualenvコマンドを使用します。

$ Sudo apt-get install python-virtualenv
$ virtualenv --python=python3.6 myvenv

注:次のようなエラーが表示された場合

E:パッケージpython3-venvが見つかりません

代わりに実行します:

Sudo apt install python3.6-venv
33
wgetDJ

python3.6の代わりにpython3.6-venv経由でppa:deadsnakes/ppappa:jonathonf/python-3.6をインストールするとうまくいきました

apt-get update \
&& apt-get install -y software-properties-common curl \
&& add-apt-repository ppa:deadsnakes/ppa \
&& apt-get update \
&& apt-get install -y python3.6 python3.6-venv
9
Orny

問題は間違ったロケールに関連している可能性があると思います。 /etc/environmentに次の行を追加して修正しました。

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8

次のコマンドを使用して、bashからファイルを取得する必要があります。

source /etc/environment
1
Zen