安装python包的问题六(安装pip)

问题描述:

我们最近卸载了pip,在Mac OS X El Capitan上做了一些清理。现在试图重新安装点子。安装python包的问题六(安装pip)

$ sudo easy_install pip 
Traceback (most recent call last): 
    File "/usr/local/bin/easy_install", line 11, in <module> 
    sys.exit(main()) 
    File "/Library/Python/2.7/site-packages/setuptools/command/easy_install.py", line 2270, in main 
    **kw 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 111, in setup 
    _setup_distribution = dist = klass(attrs) 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 321, in __init__ 
    _Distribution.__init__(self, attrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 287, in __init__ 
    self.finalize_options() 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 389, in finalize_options 
    ep.require(installer=self.fetch_build_egg) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 2324, in require 
    items = working_set.resolve(reqs, env, installer, extras=self.extras) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 859, in resolve 
    raise VersionConflict(dist, req).with_context(dependent_req) 
pkg_resources.VersionConflict: (six 1.4.1 (/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python), Requirement.parse('six>=1.6.0')) 

看起来我们需要升级六。所以:

$ easy_install --upgrade six 
Traceback (most recent call last): 
    File "/usr/local/bin/easy_install", line 11, in <module> 
    sys.exit(main()) 
    File "/Library/Python/2.7/site-packages/setuptools/command/easy_install.py", line 2270, in main 
    **kw 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 111, in setup 
    _setup_distribution = dist = klass(attrs) 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 321, in __init__ 
    _Distribution.__init__(self, attrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 287, in __init__ 
    self.finalize_options() 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 389, in finalize_options 
    ep.require(installer=self.fetch_build_egg) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 2324, in require 
    items = working_set.resolve(reqs, env, installer, extras=self.extras) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 859, in resolve 
    raise VersionConflict(dist, req).with_context(dependent_req) 
pkg_resources.VersionConflict: (six 1.4.1 (/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python), Requirement.parse('six>=1.6.0')) 

现在看来我们需要升级六个才能升级六个?也许这只是一个权限问题:

$sudo easy_install --upgrade six 
Traceback (most recent call last): 
    File "/usr/local/bin/easy_install", line 11, in <module> 
    sys.exit(main()) 
    File "/Library/Python/2.7/site-packages/setuptools/command/easy_install.py", line 2270, in main 
    **kw 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/core.py", line 111, in setup 
    _setup_distribution = dist = klass(attrs) 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 321, in __init__ 
    _Distribution.__init__(self, attrs) 
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 287, in __init__ 
    self.finalize_options() 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 389, in finalize_options 
    ep.require(installer=self.fetch_build_egg) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 2324, in require 
    items = working_set.resolve(reqs, env, installer, extras=self.extras) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 859, in resolve 
    raise VersionConflict(dist, req).with_context(dependent_req) 
pkg_resources.VersionConflict: (six 1.4.1 (/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python), Requirement.parse('six>=1.6.0')) 

没有。同样的错误。

我明显错过了一些东西。有人可以对此有所了解吗?

尝试的第一个答案:

$ python get-pip.py 
Collecting pip 
    Using cached pip-9.0.1-py2.py3-none-any.whl 
Collecting wheel 
    Using cached wheel-0.29.0-py2.py3-none-any.whl 
Installing collected packages: pip, wheel 
Exception: 
Traceback (most recent call last): 
    File "/var/folders/23/49gg72xd4wb1qps4z5j9vbz80000gy/T/tmpz5ckOD/pip.zip/pip/basecommand.py", line 215, in main 
    status = self.run(options, args) 
    File "/var/folders/23/49gg72xd4wb1qps4z5j9vbz80000gy/T/tmpz5ckOD/pip.zip/pip/commands/install.py", line 342, in run 
    prefix=options.prefix_path, 
    File "/var/folders/23/49gg72xd4wb1qps4z5j9vbz80000gy/T/tmpz5ckOD/pip.zip/pip/req/req_set.py", line 784, in install 
    **kwargs 
    File "/var/folders/23/49gg72xd4wb1qps4z5j9vbz80000gy/T/tmpz5ckOD/pip.zip/pip/req/req_install.py", line 851, in install 
    self.move_wheel_files(self.source_dir, root=root, prefix=prefix) 
    File "/var/folders/23/49gg72xd4wb1qps4z5j9vbz80000gy/T/tmpz5ckOD/pip.zip/pip/req/req_install.py", line 1064, in move_wheel_files 
    isolated=self.isolated, 
    File "/var/folders/23/49gg72xd4wb1qps4z5j9vbz80000gy/T/tmpz5ckOD/pip.zip/pip/wheel.py", line 247, in move_wheel_files 
    prefix=prefix, 
    File "/var/folders/23/49gg72xd4wb1qps4z5j9vbz80000gy/T/tmpz5ckOD/pip.zip/pip/locations.py", line 140, in distutils_scheme 
    d = Distribution(dist_args) 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 321, in __init__ 
    _Distribution.__init__(self, attrs) 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/distutils/dist.py", line 287, in __init__ 
    self.finalize_options() 
    File "/Library/Python/2.7/site-packages/setuptools/dist.py", line 389, in finalize_options 
    ep.require(installer=self.fetch_build_egg) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 2324, in require 
    items = working_set.resolve(reqs, env, installer, extras=self.extras) 
    File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 859, in resolve 
    raise VersionConflict(dist, req).with_context(dependent_req) 
VersionConflict: (six 1.4.1 (/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python), Requirement.parse('six>=1.6.0'))  

Python的2.7.9+和3.4+

好消息! Python 3.4(2014年3月发布)和Python 2.7.9(2014年12月发布)与Pip一起发布。这是任何Python版本的最佳功能。它使每个人都可以访问社区的丰富图书馆。由于安装难度大,新手不再被排除在社区图书馆之外。在与包管理员一起交付时,Python加入了Ruby,Node.js,Haskell,Perl,Go--几乎所有其他当代语言都与大多数开源社区一起使用。谢谢Python。

当然,这并不意味着Python包装问题已经解决。经验依然令人沮丧。我在Stack Overflow问题中讨论这个Python是否有一个包/模块管理系统?

而且,对于每个使用Python 2.7.8或更早版本(社区的相当大一部分)的人来说,这都是可惜的。没有计划向您发货Pip。手动指导如下。 Python 2≤2.7.8和Python 3≤3.3

面对“包含电池”的座右铭,Python在没有包管理器的情况下发货。更糟糕的是,Pip直到最近才开始讽刺地很难安装。 官方说明

https://pip.pypa.io/en/stable/installing/#do-i-need-to-install-pip

下载get-pip.py,小心翼翼地将其保存为.py文件,而不是.TXT。然后,在命令提示符下运行:

蟒蛇get-pip.py

您可能需要管理员命令提示符来做到这一点。按照以管理员身份启动命令提示符(Microsoft TechNet)。 替代指令

官方文档告诉用户从源代码安装Pip及其每个依赖关系。对于有经验的人来说这很乏味,而且对于新手来说非常困难。

为了我们的缘故,Christoph Gohlke为流行的Python软件包准备了Windows安装程序(.msi)。他为所有Python版本(32位和64位)构建安装程序。你需要

Install setuptools 
Install pip 

对我来说,这个在C:\ Python27 \ Scripts \ pip.exe上安装了Pip。找点子。exe,然后将其文件夹(例如,C:\ Python27 \ Scripts)添加到您的路径(启动/编辑环境变量)。现在你应该可以从命令行运行pip了。尝试安装包:

PIP安装httpie

你去那里(希望如此)!常见问题的解决方案如下: 代理问题

如果您在办公室工作,您可能会在HTTP代理的后面。如果是这样,请设置环境变量http_proxy和https_proxy。大多数Python应用程序(和其他免费软件)都尊重这些。例如语法:

http://proxy_url:port http://username:[email protected]_url:port

如果你实在不走运,你的代理可能是微软NTLM代理。自由软件不能应付。唯一的解决方案是安装一个免费的软件代理,转发给讨厌的代理。 http://cntlm.sourceforge.net/ 无法找到vcvarsall.bat

Python模块可以用C或C++编写。 Pip试图从源代码编译。如果你没有安装和配置C/C++编译器,你会看到这个神秘的错误信息。

Error: Unable to find vcvarsall.bat 

您可以通过安装C++编译器(如MinGW或Visual C++)来解决该问题。微软实际上推出了一款专门用于Python的产品。或者尝试用于Python 2.7的Microsoft Visual C++编译器。

虽然检查Christoph的网站更容易,

+0

非常感谢您的回答,但是这给出了同样的错误。我会用结果更新我的问题。 – Ramy

+0

此外,这看起来像一个Windows解决方案。请注意这是在Mac OS X上。 – Ramy