gpt4 book ai didi

python - 在 Centos 或 Redhat 上使用 ansible core 的 pip 和 virtualenv

转载 作者:太空宇宙 更新时间:2023-11-03 11:25:15 25 4
gpt4 key购买 nike

我已经创建了一个剧本,假设为本地开发人员运行一个 django 网站。这些都是组织限制

我试图遵循

中的软件集合路线
  • 将 scl 存储库添加到 box
  • 通过 yum 安装 python27
  • 使用 shell 模块启用 python27
  • 在该 shell 中创建一个 virtualenv

新创建的 virtualenv 和 python 二进制文件在提供后会出错。这是我的剧本的相关部分:

主.yml

- hosts: app
sudo: yes
sudo_user: root
gather_facts: true
roles:
# insert other roles
tasks:
- name: Add SCL Repos
command: sh -c 'wget -qO- http://people.redhat.com/bkabrda/scl_python27.repo >> /etc/yum.repos.d/scl.repo'
- name: Install python dependencies
yum: pkg={{ item }} state=present
with_items:
- "python-devel"
- "scl-utils"
- "python27"
- name: Manually create virtual .env and install requirements
shell: "source /opt/rh/python27/enable && virtualenv /vagrant/.env && source /vagrant/.env/bin/activate && pip install -r /vagrant/requirements/local.txt"

Ansible - 标准输出

这是我的 ansible 标准输出消息的结尾。

pip can't proceed with requirement 'pytz (from -r /vagrant/requirements/base.txt (line 3))' due to a pre-existing build directory.\n location: /vagrant/.env/build/pytz\nThis is likely due to a previous installation that failed.\npip is being responsible and not assuming it can delete this.\nPlease delete it and try again.\n\nCleaning up...

通过 SSH 进行验尸测试

为了收集更多信息来解决问题,我进入了这个盒子,看看我能得到什么反馈。

$ vagrant ssh
Last login: Fri Feb 12 22:17:03 2016 from 10.0.2.2
Welcome to your Vagrant-built virtual machine.

[vagrant@localhost ~]$ cd /vagrant/
[vagrant@localhost vagrant]$ source .env/bin/activate
(.env)[vagrant@localhost vagrant]$ pip install -r requirements/local.txt
/vagrant/.env/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

总的来说,这种方法感觉就像是圆孔中的方钉。我很想听听社区关于使用通过 ansible 提供的 python27 virtualenv 在本地运行 centos box 的适当方式的一些反馈。

最佳答案

您始终可以使用 ansible 环境指令手动设置适当的变量,以便调用正确的可执行文件。这是一个例子:

 environment:
PATH: "/opt/rh/rh-python34/root/usr/bin:{{ ansible_env.PATH }}"
LD_LIBRARY_PATH: "/opt/rh/rh-python34/root/usr/lib64"
MANPATH: "/opt/rh/rh-python34/root/usr/share/man"
XDG_DATA_DIRS: "/opt/rh/rh-python34/root/usr/share"
PKG_CONFIG_PATH: "/opt/rh/rh-python34/root/usr/lib64/pkgconfig"

pip: "virtualenv={{root_dir}}/{{venvs_dir}}/{{app_name}}_{{spec}} requirements={{root_dir}}/{{spec}}_sites/{{app_name}}/requirements.txt"

关于python - 在 Centos 或 Redhat 上使用 ansible core 的 pip 和 virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35373354/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com