Python 无法安装pip包,因为Ubuntu Vagrant框中存在locale.error

Python 无法安装pip包,因为Ubuntu Vagrant框中存在locale.error,python,ubuntu,vagrant,pip,virtualenv,Python,Ubuntu,Vagrant,Pip,Virtualenv,我刚刚用ubuntu/trusty32创建了一个流浪者盒子。流浪者供给者在箱子创建期间执行了以下操作: 使用wget 使用tar zxvf./virtualenv.tar.gz 使用python./virtualenv/virtualenv.py./venv 使用source./venv/bin/activate来获取新创建的venv 在虚拟环境中使用pip install django,pip install mysqlclient等安装了一些pip软件包 所有这些都很好地完成了——流浪者

我刚刚用ubuntu/trusty32创建了一个流浪者盒子。流浪者供给者在箱子创建期间执行了以下操作:

  • 使用
    wget
  • 使用
    tar zxvf./virtualenv.tar.gz
  • 使用
    python./virtualenv/virtualenv.py./venv
  • 使用
    source./venv/bin/activate来获取新创建的venv
  • 在虚拟环境中使用
    pip install django
    pip install mysqlclient
    等安装了一些pip软件包
所有这些都很好地完成了——流浪者供给者在第一次创建流浪者箱时执行

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

$ 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:~$ 
$vagrant ssh
vagrant@django-框:~$source venv/bin/activate
(venv)vagrant@django-框:~$pip安装ipython
回溯(最近一次呼叫最后一次):
文件“/home/vagrant/venv/bin/pip”,第11行,在
sys.exit(main())
文件“/home/vagrant/venv/local/lib/python2.7/site packages/pip/__init__.py”,第215行,在main中
setlocale(locale.LC_ALL“”)
setlocale中的文件“/home/vagrant/venv/lib/python2.7/locale.py”,第579行
return\u setlocale(类别,区域设置)
区域设置。错误:不支持的区域设置
(venv)vagrant@django-方框:~$
注意:这是一个全新的vagrant box,运行ubuntu/trusty32开箱即用

关于区域设置错误有几个问题,但遵循这些问题并没有显示出对这个流浪场景的帮助


没有意义的是,所有这些在创建/提供漫游框期间都工作得很好,但在手动尝试相同的操作时,之后就不工作了。首先检查当前的区域设置配置,只需将
区域设置
放在命令行中即可

您应该看到类似的内容:

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


这应该可以解决问题。

太好了。。。这起作用了。刚才发生了什么事???将
en_US.UTF-8
内引号与不将
en_US.UTF-8
内引号包装有什么区别吗?注意。。每次登录到机器外壳时,我都需要这样做。如何使其永久化?您可以在
.bashrc
中添加命令,这样每次登录shell时都会执行该命令。也别忘了把这个标记为答案,以便任何其他人都有这个问题可以回答:“仍然不明白为什么它是由流浪者提供的罚款,但不是在手动尝试时。”