由于Ubuntu Vagrant Box中的locale.error,无法安装pip包

时间:2016-03-29 12:11:11

标签: python ubuntu vagrant pip virtualenv

我刚用ubuntu / trusty32创建了一个流浪盒。在盒子创建期间,流浪者供应者已经完成了以下工作:

  • 使用wget
  • 下载了python virtualenv源代码tarball
  • 使用tar zxvf ./virtualenv.tar.gz
  • 解开virtualenv源tarball
  • 使用venv
  • 创建了一个名为python ./virtualenv/virtualenv.py ./venv的virtualenv
  • 使用source ./venv/bin/activate
  • 获取新创建的venv
  • 在虚拟环境中安装了一些带有pip install djangopip install mysqlclient等的pip包。

所有这些都运行良好且完美 - 在第一次创建流浪者盒时由流浪者提供者执行。

但是,稍后,我登录了vagrant ssh并尝试通过ipython安装pip

$ vagrant ssh
vagrant@django-box:~$ source venv/bin/activate
(venv) vagrant@django-box:~$ pip install ipython
Traceback (most recent call last):
  File "/home/vagrant/venv/bin/pip", line 11, in <module>
    sys.exit(main())
  File "/home/vagrant/venv/local/lib/python2.7/site-packages/pip/__init__.py", line 215, in main
    locale.setlocale(locale.LC_ALL, '')
  File "/home/vagrant/venv/lib/python2.7/locale.py", line 579, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting
(venv) vagrant@django-box:~$ 

注意:这是一个全新的流行框,运行ubuntu / trusty32开箱即用。

有几个关于语言环境错误的SO问题,但是他们发现没有帮助这个流浪的情况。

在流浪盒创建/提供时间内完全正常但在手动尝试同样的事情后无法正常工作 是没有意义的。

1 个答案:

答案 0 :(得分:16)

首先检查当前的区域设置配置,只需将locale放在命令行中即可。

你应该看到类似的东西:

locale: Cannot set LC_CTYPE to default locale: No such file or directory
LANG=C
LC_CTYPE=utf8

通过运行以下命令在LC_CTYPE环境变量中设置有效的语言环境:

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
export LC_CTYPE="en_US.UTF-8"
locale-gen en_US.UTF-8
sudo dpkg-reconfigure locales

PS。此处使用en_US.UTF-8但如果您需要检查系统上的所有可用语言环境,请运行命令locale -a

这应该可以解决问题。

相关问题