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=