pip在stdout中打印垃圾邮件

时间:2016-11-01 07:59:26

标签: python linux amazon-ec2 pip boto

当我尝试使用pip命令时,stdout中会出现恼人的消息:

~# pip -V
Platform: linu
pip 1.5.4 from /usr/lib/python2.7/dist-packages (python 2.7)

~# pip install
Platform: linu
You must give at least one requirement to install (see "pip help install")

Python命令正常工作。

OS - Ubuntu 14.04

我尝试重新安装pip和所有依赖项,但它没有帮助。

它是什么?它来自何处?

当我尝试为AWS使用ec2.py动态库存脚本时,注意到了这个问题。我遇到了同样的问题: https://github.com/ansible/ansible/issues/14667

ec2.py生成JSON并启动" 平台:linu "因此,ansible并不适用。 我还搜索了boto库(用于ec2.py)和pip配置。但他们是空白的。

有什么建议吗?

的Python

~# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> print os.name
posix
>>> import platform
>>> platform.system()
'Linux'

找到了另一种重现问题的方法:

:/usr/bin# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> import os
>>> import boto
Platform: linu
>>>

1 个答案:

答案 0 :(得分:0)

这是常见的错误。大多数这种奇怪的问题都发生了(无论是在普通的PC,VM还是在内部的云实例中,例如EC2。您是否注意到AWS EC2使用的是另一个锁定的pip版本)在sudo模式下运行Python。

  

不要在sudo模式下运行PIP!

我的建议:setup Virtualenv并在virtualenv上安装你的软件包。然后使用mkvirtualenv yourenv创建自定义virtualenv。 要使用指定的virtualenv自动加载python脚本,只需在bash脚本中添加一行以触发python包/模块。

source <virtualenv_folder>/<virtualenv_name>/bin/activate