Python venv在ansible中将系统范围的pip包安装到venv虚拟环境中
我正在运行ansible,使用Python venv在ansible中将系统范围的pip包安装到venv虚拟环境中,python,pip,ansible,virtualenv,python-venv,Python,Pip,Ansible,Virtualenv,Python Venv,我正在运行ansible,使用venv将一些pip软件包安装到虚拟环境中,但它安装的版本和数量与系统范围的python完全相同,而不是requirement.txt中提到的 当我手动操作时,我能够获得成功。i、 e系统范围的pip包和虚拟环境pip包是不同的 我的答案是错误的 TASK [curator : Install pip packages List.] *******************************************************************
venv
将一些pip软件包安装到虚拟环境中,但它安装的版本和数量与系统范围的python完全相同,而不是requirement.txt
中提到的
当我手动操作时,我能够获得成功。i、 e系统范围的pip包和虚拟环境pip包是不同的
我的答案是错误的
TASK [curator : Install pip packages List.] ****************************************************************************************************************************
fatal: [elasticsearch_1]: FAILED! => {
"changed": false,
"cmd": "/home/user/elk-venv/bin/pip list --format=freeze",
"rc": 13
}
MSG:
[Errno 13] Permission denied
通过ansible任务,我正在做的步骤是-
venv
requirements.txt
文件和transferred\u包
文件夹中的/home/user/elk-venv/
requirements.txt
有pip包列表,而transferred\u包
文件夹已下载包。基本上是离线安装软件包
bin/pip3列表时,获取权限被拒绝
(elk-venv) [root@Server elk-venv]# bin/pip3 list
-bash: bin/pip3: Permission denied
可以像下面那样列出pip3列表,但它似乎是系统python的副本
(elk-venv) [root@Server elk-venv]# pip3 list
attrs (19.3.0)
blist (1.3.6)
如果我们在下面看到,它显示了/usr/local/lib/python3.6/site包
(elk-venv) [root@Server elk-venv]# pip3 show pytz
Name: pytz
Version: 2019.3
Summary: World timezone definitions, modern and historical
Home-page: http://pythonhosted.org/pytz
Author: Stuart Bishop
Author-email: stuart@stuartbishop.net
License: MIT
Location: /usr/local/lib/python3.6/site-packages
Requires:
(elk-venv) [root@Server elk-venv]#
# pip3 show pytz
Name: pytz
Version: 2019.3
Summary: World timezone definitions, modern and historical
Home-page: http://pythonhosted.org/pytz
Author: Stuart Bishop
Author-email: stuart@stuartbishop.net
License: MIT
Location: /root/devenv/lib/python3.6/site-packages
Requires:
Required-by: tzlocal, twilio, APScheduler
不确定原因,但配置文件也显示/usr/bin
(elk-venv) [root@Server elk-venv]# cat pyvenv.cfg
home = /usr/bin
include-system-site-packages = false
version = 3.6.8
(elk-venv)
bin文件夹下的pip/python文件python3.6
指向/usr/bin/python3.6
(elk-venv) [root@Server bin]# ls -lrth
lrwxrwxrwx 1 root root 18 Apr 28 21:56 python3.6 -> /usr/bin/python3.6
lrwxrwxrwx 1 root root 9 Apr 28 21:56 python3 -> python3.6
lrwxrwxrwx 1 root root 9 Apr 28 21:56 python -> python3.6
-rwxr-xr-x 1 root root 224 Apr 28 21:56 pip
-rwxr-xr-x 1 root root 224 Apr 28 21:56 pip3.6
-rwxr-xr-x 1 root root 224 Apr 28 21:56 pip3
elk venv下的文件。在这里看不到devenv
中的LICENSE
文件
drwxr-x--- 2 root root 4.0K Apr 28 21:56 include
-rw-r----- 1 root root 69 Apr 28 21:56 pyvenv.cfg
lrwxrwxrwx 1 root root 3 Apr 28 21:56 lib64 -> lib
drwxr-x--- 3 root root 4.0K Apr 28 21:56 lib
drwxr-x--- 2 root root 4.0K Apr 28 21:56 bin
-rw-r----- 1 root root 1022 Apr 28 21:56 requirements.txt
drwxr-x--- 3 root root 4.0K Apr 28 21:56 tranferred_packages
在虚拟环境下手动创建(devenv),它有自己的pip包
在这里可以列出软件包。没有得到拒绝的许可
(devenv) [root@Server devenv]# bin/pip list
Package Version
--------------------- ----------
APScheduler 3.6.3
attrs 19.3.0
pip 21.1
它从自己的路径显示包,即/root/devenv/lib/python3.6/site-packages
(elk-venv) [root@Server elk-venv]# pip3 show pytz
Name: pytz
Version: 2019.3
Summary: World timezone definitions, modern and historical
Home-page: http://pythonhosted.org/pytz
Author: Stuart Bishop
Author-email: stuart@stuartbishop.net
License: MIT
Location: /usr/local/lib/python3.6/site-packages
Requires:
(elk-venv) [root@Server elk-venv]#
# pip3 show pytz
Name: pytz
Version: 2019.3
Summary: World timezone definitions, modern and historical
Home-page: http://pythonhosted.org/pytz
Author: Stuart Bishop
Author-email: stuart@stuartbishop.net
License: MIT
Location: /root/devenv/lib/python3.6/site-packages
Requires:
Required-by: tzlocal, twilio, APScheduler
配置文件正在显示/bin
(devenv) [root@Server devenv]# cat pyvenv.cfg
home = /bin
include-system-site-packages = false
version = 3.6.8
(devenv) [root@Server devenv]#
bin文件夹下的pip/python文件。这里的python3.6
指向/bin/python3.6
(devenv) [root@Server bin]# ls -lrth
total 148K
lrwxrwxrwx 1 root root 14 Apr 27 17:39 python3.6 -> /bin/python3.6
lrwxrwxrwx 1 root root 9 Apr 27 17:39 python3 -> python3.6
lrwxrwxrwx 1 root root 9 Apr 27 17:39 python -> python3.6
-rwxr-xr-x 1 root root 233 Apr 28 12:29 pip3.6
-rwxr-xr-x 1 root root 233 Apr 28 12:29 pip3
-rwxr-xr-x 1 root root 233 Apr 28 12:29 pip
devenv
venv下的文件
-rw-r----- 1 root root 65 Apr 27 17:39 pyvenv.cfg
lrwxrwxrwx 1 root root 3 Apr 27 17:39 lib64 -> lib
drwxr-x--- 3 root root 4.0K Apr 27 17:39 lib
drwxr-x--- 2 root root 4.0K Apr 27 17:39 include
-rw-r----- 1 root root 12K Apr 28 12:30 LICENSE
drwxr-x--- 3 root root 4.0K Apr 28 13:30 bin
drwxr-x--- 2 root root 4.0K Apr 28 20:45 tranferred_packages
-rw-r----- 1 root root 1022 Apr 28 20:45 requirements.txt
(devenv) [root@Server devenv]#
ansible版本是-ansible 2.9.9
ansible python版本=2.7.5
我认为上面的pip模块在anisble中缺失了一些东西导致了这种情况。有人能告诉我是什么吗
谢谢,当我们在/root
内部创建venv
时,上面的一个选项起作用,但是在内部创建/home/user/
时会出现权限被拒绝的错误。即使在使用been:true
创建virtualenv
任务和安装pip包
任务后,它也会给出相同的错误。