Nee*_*raj 10 python pip pyyaml python-3.x
我正在尝试执行一个脚本
python3 env/common_config/add_imagepullsecret.py
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
[root@kevin]# python3 env/common_config/add_imagepullsecret.py
Traceback (most recent call last):
File "env/common_config/add_imagepullsecret.py", line 4, in <module>
import yaml
ImportError: No module named 'yaml'
[root@kevin]# pip3 install pyyaml
Requirement already satisfied: pyyaml in /usr/lib64/python3.4/site-packages
(3.12)
[root@kevin]#
Run Code Online (Sandbox Code Playgroud)
PyYAML已经安装在机器中:
[root@bhimsvm31 k8s]# pip3 install pyyaml
Requirement already satisfied: pyyaml in /usr/lib64/python3.4/site-packages
(3.12)
[root@bhimsvm31 k8s]#
Run Code Online (Sandbox Code Playgroud)
如何获取此脚本以导入PyYAML?
小智 9
开发人员的最佳实践是为他们创建的每个项目创建一个 virtualenv。这可以帮助您维护与系统根配置隔离的依赖关系
安装虚拟环境
cd /*desired*/
mkdir myProject
pip install virtualenv -p python3 . #For python 3
pip install virtualenv -p python2 . #For python 2
pip install pyyaml
pip freeze > requirements.txt
Run Code Online (Sandbox Code Playgroud)
之后,您将能够看到一个文本文档,其中包含您在 virtualenv 中安装的所有依赖项。
干杯:)
小智 9
pip install pyyaml
Run Code Online (Sandbox Code Playgroud)
这应该达到目的
解决方案1:在其中安装python 3.6和ln python3
export $PYPATH=`which python3`
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz
tar -Jxf Python-3.6.5.tar.xz
cd Python-3.6.5/
./configure && make && make altinstall
rm $PYPATH
ln -s `which python3.6` $PYPATH
python3 -m pip install pyyaml
python3 env/common_config/add_imagepullsecret.py
Run Code Online (Sandbox Code Playgroud)
解决方案2:使用virtualenv
pip3 install virtualenv
virtualenv --python=python3 venv
source venv/bin/activate
pip install pyyaml
python env/common_config/add_imagepullsecret.py
Run Code Online (Sandbox Code Playgroud)
解决方案3:使用Pipenv
这里的问题是由于您已经在一台由包管理器安装了旧版本的python3计算机上下载、编译并安装了(较新)版本的 。python3后者有,而pip3前者没有。/usr/local/bin/python3 --version您可以通过执行以下操作来验证这一点/usr/bin/python3 --version
因此,当您执行的操作pip3 install pyyaml是将 PyYAML 包添加到旧的 Python3 中时会发生什么。当你这样做时:
/usr/bin/python3 env/common_config/add_imagepullsecret.py
Run Code Online (Sandbox Code Playgroud)
一切应该可以正常工作,除非您依赖于较新版本的某些功能python3。
一个更具结构性的解决方案是安装pip较新的版本python3并使用它来安装 PyYAML。
一个更具结构性的解决方案是永远不要python3在您的路径中安装此类附加内容,而是在例如/opt/python/3.7.0,使用中virtualenv -p /opt/python/3.7.0/bin/python /opt/util/yourutil安装每个包
/opt/util/yourutil/bin/pip3 install package_name,然后执行以下操作:
/opt/util/yourutil/bin/python env/common_config/add_imagepullsecret.py
Run Code Online (Sandbox Code Playgroud)
运行你的程序。通过一些支持脚本/函数/别名/链接,可以非常有效地完成此操作,而不会污染系统python3`“安装空间”或您的路径。
小智 6
尝试以下操作:
1. 卸载 python-yaml 及其依赖项。
$ sudo apt-get remove python3-yaml
$ sudo apt-get remove --auto-remove python3-yaml
Run Code Online (Sandbox Code Playgroud)
也清除您的配置/数据。
$ sudo apt-get purge python3-yaml
$ sudo apt-get purge --auto-remove python3-yaml
Run Code Online (Sandbox Code Playgroud)
安装pyyaml
$ sudo pip3 安装 pyyaml
这对我有用。
| 归档时间: |
|
| 查看次数: |
31521 次 |
| 最近记录: |