sudo pip install setuptools --upgrade error

22 浏览
0 Comments

sudo pip install setuptools --upgrade error

我正在执行pip install setuptools --upgrade,但是出现了以下错误:\n

正在安装收集的包: setuptools
  找到现有的安装: setuptools 1.1.6
    正在卸载 setuptools-1.1.6:
异常:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip-8.1.1-py2.7.egg/pip/basecommand.py", line 209, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip-8.1.1-py2.7.egg/pip/commands/install.py", line 317, in run
    prefix=options.prefix_path,
  File "/Library/Python/2.7/site-packages/pip-8.1.1-py2.7.egg/pip/req/req_set.py", line 726, in install
    requirement.uninstall(auto_confirm=True)
  File "/Library/Python/2.7/site-packages/pip-8.1.1-py2.7.egg/pip/req/req_install.py", line 746, in uninstall
    paths_to_remove.remove(auto_confirm)
  File "/Library/Python/2.7/site-packages/pip-8.1.1-py2.7.egg/pip/req/req_uninstall.py", line 115, in remove
    renames(path, new_path)
  File "/Library/Python/2.7/site-packages/pip-8.1.1-py2.7.egg/pip/utils/__init__.py", line 267, in renames
    shutil.move(old, new)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 299, in move
    copytree(src, real_dst, symlinks=True)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 208, in copytree
    raise Error, errors
Error: [('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py', '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py', "[Errno 1] Operation not permitted: '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.py'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc', '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc', "[Errno 1] Operation not permitted: '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/__init__.pyc'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py', '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py', "[Errno 1] Operation not permitted: '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.py'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc', '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc', "[Errno 1] Operation not permitted: '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib/markers.pyc'"), ('/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib', '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib', "[Errno 1] Operation not permitted: '/tmp/pip-rV15My-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/_markerlib'")]

\n我漏掉了什么?我尝试了sudo pip install,但没有帮助。

0
0 Comments

问题出现的原因是在升级Python虚拟环境中的setuptools时,出现了OSError: [Errno 2] No such file or directory的错误。解决方法是在继续之前,先取消激活并重新激活Python虚拟环境。

长篇版本:

我正在升级一个长期运行的项目的Python版本和库。我在开发和测试中使用Python虚拟环境。主机系统是MacOS 10.11.5(El Capitan)。我发现在创建虚拟环境后,需要更新pip(显然是由于2018-04的最新pypa TLS更改),因此我的初始设置如下(使用可下载的MacOS安装程序安装了最新版本的Python 2.7系列):

virtualenv myenv -p python2.7

source myenv/bin/activate

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

python get-pip.py

到这里都还好:) 我的问题出现在我尝试运行以下命令时:

pip install --upgrade setuptools

安装似乎正常工作,但然后我收到一个错误消息,如下所示:

Collecting setuptools

Using cached setuptools-39.0.1-py2.py3-none-any.whl

Installing collected packages: setuptools

Found existing installation: setuptools 0.6rc11

Uninstalling setuptools-0.6rc11:

Successfully uninstalled setuptools-0.6rc11

Successfully installed setuptools-39.0.1

Traceback (most recent call last):

File "/Users/graham/workspace/github/gklyne/annalist/anenv/bin/pip", line 11, in <module>

sys.exit(main())

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/__init__.py", line 248, in main

return command.main(cmd_args)

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/basecommand.py", line 252, in main

pip_version_check(session)

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/utils/outdated.py", line 102, in pip_version_check

installed_version = get_installed_version("pip")

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/utils/__init__.py", line 838, in get_installed_version

working_set = pkg_resources.WorkingSet()

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 644, in __init__

self.add_entry(entry)

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 700, in add_entry

for dist in find_distributions(entry, True):

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1949, in find_eggs_in_zip

if metadata.has_metadata('PKG-INFO'):

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1463, in has_metadata

return self.egg_info and self._has(self._fn(self.egg_info, name))

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1823, in _has

return zip_path in self.zipinfo or zip_path in self._index()

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1703, in zipinfo

return self._zip_manifests.load(self.loader.archive)

File "/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/pip/_vendor/pkg_resources/__init__.py", line 1643, in load

mtime = os.stat(path).st_mtime

OSError: [Errno 2] No such file or directory: '/Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg'

请注意,安装似乎已成功完成,然后是OSError异常,它似乎是尝试访问旧的setuptools。尽管出现错误消息,但pip似乎完全可以用于安装新的包,但是我的本地setup.py无法找到其依赖项,例如:

$ python setup.py install

running install

(lots of build messages)

Installed /Users/graham/workspace/github/gklyne/annalist/anenv/lib/python2.7/site-packages/oauth2client-1.2-py2.7.egg

Processing dependencies for oauth2client==1.2

Searching for httplib2>=0.8

Reading https://pypi.python.org/simple/httplib2/

Couldn't find index page for 'httplib2' (maybe misspelled?)

Scanning index of all packages (this may take a while)

Reading https://pypi.python.org/simple/

No local packages or working download links found for httplib2>=0.8

error: Could not find suitable distribution for Requirement.parse('httplib2>=0.8')

但是,如果我使用pip安装相同的依赖项('httplib2>=0.8'),它可以正常工作,并且我可以重新运行setup.py而没有任何问题。

此时,我猜测运行setup.py和pip之间的区别在于虚拟环境以某种方式保留了一些旧的setuptools文件,但pip自带了自己的副本。因此,在升级setuptools并出现OSError: [Errno 2] No such file or directory错误后,我取消激活并重新激活虚拟环境,如下所示:

deactivate

source myenv/bin/activate

然后,setup.py似乎可以正常工作!

0
0 Comments

问题原因:操作没有得到适当的权限。

解决方法:尝试手动升级 setuptools:

pip uninstall setuptools
pip install setuptools

如果上述方法不起作用,可以尝试以下方法:

pip install --upgrade setuptools --user python

对我来说,pip install --upgrade setuptools --user python 完美地解决了这个问题。

0