pyvenvで環境が作れない

はじめに

Ubuntu16.04 Python3.5環境下での出来事

新しく作った環境でいつも通り環境を作ろうとすると

 1$ python3 -m venv .
 2The virtual environment was not created successfully because ensurepip is not
 3available.  On Debian/Ubuntu systems, you need to install the python3-venv
 4package using the following command.
 5
 6    apt-get install python3-venv
 7
 8You may need to use sudo with that command.  After installing the python3-venv
 9package, recreate your virtual environment.
10
11Failing command: ['/home/sky/bin/python3', '-Im', 'ensurepip', '--upgrade', '--default-pip']

怒られる

対処

ここまではいつも通りなのでパッケージを入れる

1$ sudo apt-get install python3-venv

これで問題なく生成できるはずですが今回はダメでした
正確には直接コンソールから実行する分には上手くいくのですがリモートからSSHで実行すると最初のエラーが出ます.
環境変数かlocale辺りで詰まってるっぽいので調べたらlocaleによって上手くいかないことがあるみたいです.

というわけで一時的に変えたら上手く行きました

1$ LANG=C python3 -m venv .
2$ source bin/activate
3(example) $ which python ←それぞれ切り替わってるか確認
4/example/bin/python
5(example) $ which pip
6/example/bin/pip

あとは確認した時のメモ
docker execで入った時のlocale

 1$ locale
 2LANG=
 3LANGUAGE=
 4LC_CTYPE="POSIX"
 5LC_NUMERIC="POSIX"
 6LC_TIME="POSIX"
 7LC_COLLATE="POSIX"
 8LC_MONETARY="POSIX"
 9LC_MESSAGES="POSIX"
10LC_PAPER="POSIX"
11LC_NAME="POSIX"
12LC_ADDRESS="POSIX"
13LC_TELEPHONE="POSIX"
14LC_MEASUREMENT="POSIX"
15LC_IDENTIFICATION="POSIX"
16LC_ALL=
17sshで入った時のlocale
18
19locale: Cannot set LC_CTYPE to default locale: No such file or directory
20locale: Cannot set LC_MESSAGES to default locale: No such file or directory
21locale: Cannot set LC_ALL to default locale: No such file or directory
22LANG=ja_JP.UTF-8
23LANGUAGE=
24LC_CTYPE="ja_JP.UTF-8"
25LC_NUMERIC="ja_JP.UTF-8"
26LC_TIME="ja_JP.UTF-8"
27LC_COLLATE="ja_JP.UTF-8"
28LC_MONETARY="ja_JP.UTF-8"
29LC_MESSAGES="ja_JP.UTF-8"
30LC_PAPER="ja_JP.UTF-8"
31LC_NAME="ja_JP.UTF-8"
32LC_ADDRESS="ja_JP.UTF-8"
33LC_TELEPHONE="ja_JP.UTF-8"
34LC_MEASUREMENT="ja_JP.UTF-8"
35LC_IDENTIFICATION="ja_JP.UTF-8"
36LC_ALL=