J'essaie d'utiliser le grattage, mais j'ai un problème.
à partir de six.moves, importez xmlrpc_client en tant que xmlrpclib
ImportError: impossible d'importer le nom xmlrpc_client
Ensuite, j'ai essayé pip install --upgrade six scrape
, mais:
Found existing installation: six 1.4.1
DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling six-1.4.1:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 211, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 311, in run
root=options.root_path,
File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 640, in install
requirement.uninstall(auto_confirm=True)
File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 716, in uninstall
paths_to_remove.remove(auto_confirm)
File "/Library/Python/2.7/site-packages/pip/req/req_uninstall.py", line 125, in remove
renames(path, new_path)
File "/Library/Python/2.7/site-packages/pip/utils/__init__.py", line 315, in renames
shutil.move(old, new)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 302, in move
copy2(src, real_dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
copystat(src, dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/var/folders/3h/r_2cxlvd1sjgzfgs4xckc__c0000gn/T/pip-5h86J8-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.Egg-info'
Solution rapide:
Je viens de contourner ce que je pense être le même problème. Vous pourriez envisager d'essayer ceci (Sudo, si nécessaire):
pip install scrape --upgrade --ignore-installed six
Github est finalement l'endroit où j'ai obtenu cette réponse (et il y a quelques autres suggestions que vous pourriez envisager si celle-ci ne résout pas votre problème). Il semble également que ce soit un problème d'El Capitan.
En outre, cela pourrait être techniquement un en double . Mais la réponse de l'autre article a été d'installer votre propre Python plutôt que de compter sur le Python osx par défaut, ce qui me semble plus laborieux.
Correction plus longue et réelle:
Finalement, je suis tombé sur une situation où j'avais réellement besoin de mettre à niveau six
pour installer d'autres bibliothèques, auquel cas ignorer n'était pas suffisant. La façon la plus simple de mettre à niveau six pour moi était de ne pas utiliser pip, mais de télécharger manuellement le .tar.gz
de la page de six , décompressez, déplacez-vous vers le répertoire de six packages décompressé et exécutez l'installation manuellement (Sudo, si nécessaire):
python setup.py install
Merci à cette réponse pour les conseils.
Je ne pense pas que ce soit un doublon, mais en fait ce problème discuté ici sur la liste des problèmes du référentiel pip GitHub .
REMARQUE: Selon le package que vous installez, vous devrez peut-être modifier la commande référencée dans la solution. Dans mon cas ci-dessous, j'essayais de configurer virtualenv et virtualwrapper. Si vous ne parvenez pas à installer aws-cli ou tout autre paquet, insérez simplement cela dans le script
Le cœur du problème est lié au nouveau SIP d'Apple qu'ils ont livré avec El Capitan. Plus spécifiquement ,
python d'OS X 10.11 conserve sa propre copie de six qui est inamovible, en raison des modifications que Apple a apportées à leur distribution python. 1.4.1 n'est pas le dernier, 1.10.0 l'est. Il arrive également tôt dans le chemin d'importation de leur python, donc il remplacera généralement les versions ultérieures que vous installez.
Je suggère d'utiliser un autre python pour l'instant. Python.org, ou installé via Homebrew, ou Anaconda Python.
Il y a une discussion incroyablement détaillée sur le Ask Different Stack Exchange qui couvre comment les problèmes avec SIP ont été identifiés, résolus et évolués depuis la version originale d'El Capitan. Bien que je l'ai trouvé fascinant, vous passerez moins de temps à suivre les instructions ci-dessous qu'il ne vous en faudrait pour le lire, donc je vous recommande de le vérifier APRÈS avoir terminé ce qui suit ...
J'ai rencontré exactement la même erreur lors de la tentative de mise à niveau de VirtualEnv et VirtualEnvWrapper. Il y avait plusieurs suggestions lancées autour de ce fil ci-dessus, mais à la fin le plus stable était de
$ man Sudo
-H The -H (HOME) option option sets the HOME environment variable
to the home directory of the target user (root by default) as specified
HOME environment variable depends on sudoers(5) settings. By default,
Sudo will set HOME if env_reset or always_set_home are set, or if
set_home is set and the -s option is specified on the command line.
$ pip install --help | grep upgrade
-U, --upgrade Upgrade all specified packages to the newest available
version. This process is recursive regardless of whether a dependency
is already satisfied.
beejhuff@ignatius:~/mac_setup$ pip install --help | grep ignore-installed
-I, --ignore-installed Ignore the installed packages (reinstalling instead).
Tout d'abord, ma tentative et erreur d'origine:
$ Sudo pip install virtualenv virtualenvwrapper
The directory '/Users/beejhuff/Library/Caches/pip/http' or its parent directory
is not owned by the current user and the cache has been disabled.
Please check the permissions and owner of that directory. If executing
pip with Sudo, you may want Sudo's -H flag.
The directory '/Users/beejhuff/Library/Caches/pip' or its parent directory
is not owned by the current user and caching wheels has been disabled.
check the permissions and owner of that directory. If executing pip with
Sudo, you may want Sudo's -H flag.
Collecting virtualenv
Downloading virtualenv-15.0.0-py2.py3-none-any.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 335kB/s
Collecting virtualenvwrapper
Downloading virtualenvwrapper-4.7.1-py2.py3-none-any.whl
Collecting virtualenv-clone (from virtualenvwrapper)
Downloading virtualenv-clone-0.2.6.tar.gz
Collecting stevedore (from virtualenvwrapper)
Downloading stevedore-1.12.0-py2.py3-none-any.whl
Collecting pbr>=1.6 (from stevedore->virtualenvwrapper)
Downloading pbr-1.8.1-py2.py3-none-any.whl (89kB)
100% |████████████████████████████████| 92kB 362kB/s
Collecting six>=1.9.0 (from stevedore->virtualenvwrapper)
Downloading six-1.10.0-py2.py3-none-any.whl
Installing collected packages: virtualenv, virtualenv-clone, pbr, six, stevedore, virtualenvwrapper
Running setup.py install for virtualenv-clone ... done
Found existing installation: six 1.4.1
DEPRECATION: Uninstalling a distutils installed project (six) has been deprecated and will be removed in a future version. This is due to the fact that uninstalling a distutils project will only partially uninstall the project.
Uninstalling six-1.4.1:
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip-8.1.0-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.0-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.0-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.0-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.0-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.0-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 302, in move
copy2(src, real_dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 131, in copy2
copystat(src, dst)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/shutil.py", line 103, in copystat
os.chflags(dst, st.st_flags)
OSError: [Errno 1] Operation not permitted: '/tmp/pip-GQL8Gi-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/six-1.4.1-py2.7.Egg-info'
La solution
Il a fallu modifier ma commande d'installation de TROIS façons spécifiques:
-H
À Sudo
--upgrade
APRÈS le nom du package que je mettais à jour (virtualenv
)--ignore-installed
Et spécifier que le package six
était celui à ignorer.$ Sudo -H pip install <packagename> --upgrade --ignore-installed six
- remplacez <packagename>
Par le package spécifique que vous devez installer`Exemple de travail final
1st Upgrade virtualenv
$ Sudo -H pip install virtualenv --upgrade --ignore-installed six
Password:
Collecting virtualenv
Using cached virtualenv-15.0.0-py2.py3-none-any.whl
Collecting six
Using cached six-1.10.0-py2.py3-none-any.whl
Installing collected packages: virtualenv, six
Successfully installed six-1.4.1 virtualenv-15.0.0
2e mise à niveau de virtualenvwrapper
$ Sudo -H pip install virtualenvwrapper --upgrade --ignore-installed six
Password:
Downloading virtualenvwrapper-4.7.1-py2.py3-none-any.whl
Collecting six
Downloading six-1.10.0-py2.py3-none-any.whl
Collecting virtualenv (from virtualenvwrapper)
Downloading virtualenv-15.0.0-py2.py3-none-any.whl (1.8MB)
100% |████████████████████████████████| 1.8MB 751kB/s
Collecting virtualenv-clone (from virtualenvwrapper)
Downloading virtualenv-clone-0.2.6.tar.gz
Collecting stevedore (from virtualenvwrapper)
Downloading stevedore-1.12.0-py2.py3-none-any.whl
Collecting pbr>=1.6 (from stevedore->virtualenvwrapper)
Downloading pbr-1.8.1-py2.py3-none-any.whl (89kB)
100% |████████████████████████████████| 92kB 417kB/s
Installing collected packages: virtualenv, virtualenv-clone, pbr, six, stevedore, virtualenvwrapper
Running setup.py install for virtualenv-clone ... done
Successfully installed pbr-1.8.1 six-1.4.1 stevedore-1.12.0 virtualenv-15.0.0 virtualenv-clone-0.2.6 virtualenvwrapper-4.7.1
Les deux réponses précédentes ne fonctionnent pas pour moi. Enfin, j'ai obtenu la solution de GitHub, aws/aws-cli , comme extrait ci-dessous.
Sous OS X, si vous voyez une erreur concernant la version de six fournie avec distutils dans El Capitan, utilisez l'option --ignore-installed:
$ Sudo pip install awscli --ignore-installed six
Cela fonctionnerait !!
Sudo pip install awsebcli --upgrade --ignore-installed six