繁体   English   中英

如何运行从bash导入yaml的python 3脚本

[英]How do I run a python 3 script that imports yaml from bash

我正在从bash脚本内部使用python2.x调用python脚本。 如何将其更新到python 3.X?

这是我需要能够分发给客户端的脚本,使用venv cli无法正常工作

在CentOS上运行

首先,我已经安装了任意数量的python 3软件包。

$ sudo yum list installed | grep python3

python3-other-rpm-macros.noarch         3-25.el7                       @epel    
python34.x86_64                         3.4.10-2.el7                   @epel    
python34-devel.x86_64                   3.4.10-2.el7                   @epel    
python34-libs.x86_64                    3.4.10-2.el7                   @epel    
python34-pip.noarch                     8.1.2-8.el7                    @epel    
python34-setuptools.noarch              39.2.0-3.el7                   @epel    
python36.x86_64                         3.6.8-1.el7                    @epel    
python36-libs.x86_64                    3.6.8-1.el7                    @epel    
$ sudo pip3.4 install pyyaml
Requirement already satisfied (use --upgrade to upgrade): pyyaml in /usr/lib64/python3.4/site-packages

从bash脚本do_update.sh

#!/bin/bash

python3 update_yaml.py

来自python脚本update_yaml.py

import sys
import common_update
import subprocess

with open.('input.yaml') as in_yaml:
  input_data = yaml.safe_load(in_yaml)

我希望它能够解析input.yaml

输出: "ModuleNotFoundError: No module named 'yaml'"

看来您可能安装了多个版本的python。

不再建议使用pip脚本(或pip3.4等)。一个常见的问题是,您实际上为与预期版本不同的python版本安装了软件包。

而是这样做:

sudo python3 -m pip install pyyaml

这样,您可以确定python3将能够使用该库。

永远不要运行pip install下的CentOS / RHEL根除非它里面virtualenv ,或除非你想搞砸你的系统。

包:

yum install python34-PyYAML

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM