繁体   English   中英

安装python软件包六的问题(安装Pip)

[英]Issues installing python package Six (to install Pip)

我们最近卸载了pip,以便在Mac OS X El Capitan上进行一些清理。 现在尝试重新安装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+

好消息! Pip随附了Python 3.4(2014年3月发布)和Python 2.7.9(2014年12月发布)。 这是所有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/zh-CN/stable/installing/#do-i-need-to-install-pip

下载get-pip.py,请小心将其另存为.py文件而不是.txt。 然后,在命令提示符下运行它:

python get-pip.py

您可能需要管理员命令提示符才能执行此操作。 按照以管理员身份启动命令提示符(Microsoft TechNet)。 替代说明

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

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

Install setuptools
Install pip

对我来说,这在C:\\ Python27 \\ Scripts \\ pip.exe安装了Pip。 在计算机上找到pip.exe,然后将其文件夹(例如C:\\ Python27 \\ Scripts)添加到路径(“开始/编辑”环境变量)中。 现在,您应该可以从命令行运行pip了。 尝试安装软件包:

点安装httpie

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

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

http:// proxy_url:端口 http:// username:password @ proxy_url:port

如果您真的不走运,则您的代理可以是Microsoft 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网站上的包裹。

暂无
暂无

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

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