2017-04-11 97 views
1

我們最近卸載了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'))  

回答

-1

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