Ansible pip模块问题阅读要求.txt文件

Ansible pip模块问题阅读要求.txt文件,pip,ansible,Pip,Ansible,我正在使用Ansible的pip模块从requirements.txt文件安装我的应用程序依赖项。它肯定能工作,沿着列表往下看并安装每个包,但当它到达一个特定的位置时,它将失败,导致整个ansible playbook失败并出现Ascii-unicode错误 易变剧本任务 - name: Install project requirements pip: state: latest requirements: "{{ project_path }}/requirements/

我正在使用Ansible的pip模块从requirements.txt文件安装我的应用程序依赖项。它肯定能工作,沿着列表往下看并安装每个包,但当它到达一个特定的位置时,它将失败,导致整个ansible playbook失败并出现Ascii-unicode错误

易变剧本任务

- name: Install project requirements
  pip:
    state: latest
    requirements: "{{ project_path }}/requirements/base.txt"
    virtualenv: "{{ venv_path }}"
    virtualenv_python: python3.6
    virtualenv_command: /usr/local/bin/virtualenv
易懂信息

Collecting django-s3direct==1.0.3 (from -r /srv/app/requirements/base.txt (line 35))
Downloading django-s3direct-1.0.3.tar.gz (61kB)
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File \"<string>\", line 1, in <module>
File \"/tmp/pip-build-ab20m5jb/django-s3direct/setup.py\", line 5, in <module>
readme = f.read()
File \"/srv/xena/.virtualenv/lib64/python3.6/encodings/ascii.py\", line 26, in decode
return codecs.ascii_decode(input, self.errors)[0]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 6326: ordinal not in range(128)

基于来自django-s3direct的代码,它尝试读取README.md,它似乎是用UTF8编码的。它失败了,因为python试图用ascii编解码器读取它

尝试更改python的默认编码,在控制台中运行此命令以设置env变量:

export PYTHONIOENCODING=utf8
编辑:由于错误出现在guest上,请在playbook中设置env变量:


嘿,西尔,我不确定在哪里运行export命令是否重要,但我尝试了export LC_ALL=C,以及您的建议,不幸的是,它们都不起作用。是否有一个命令可以显示您的环境变量是什么,或者是否有一个文件需要查看?您可以键入env来检查您的env变量。这样的导出命令仅在当前终端中有效。如果要全局设置,可能需要更新.bashrc文件。我猜你的错误会出现在guest上,所以是的,肯定会出现在.bashrc中。我可以在我的环境变量中看到它,但它仍然不想安装。hmmmmI编辑了我的答案,您可以在剧本中设置环境。
- name: Install project requirements
  pip:
      environment:
        PYTHONIOENCODING: utf8