Sto cercando di utilizzare pip per installare un pacchetto localmente in ~/.local
. Il problema è che il pacchetto (in una versione precedente) è già disponibile globalmente sul sistema. Anche se la directory globale dei pacchetti python è non nel mio PYTHONPATH
, pip rifiuta ancora di installare, pensando che il requisito del pacchetto sia soddisfatto. Questo è simile al problema descritto qui, tranne che non sto usando sudo
quindi la soluzione non si applica: pip - Requirement already satisfied?utilizzando pip per installare i pacchetti localmente nonostante i requisiti globali soddisfatti
Se lo faccio:
pip install --user numpy
Dice:
Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/lib/python2.7/dist-packages/numpy-1.6.2-py2.7-linux-x86_64.egg
Tuttavia, /usr/local/lib/...
non è nel mio PYTHONPATH
. L'unica cosa in PYTHONPATH
è ~/.local
.
Se provo a fare:
pip install --user --upgrade numpy
Si scarica NumPy e lo compila, e poi pensa che io sto facendo un globale installare nonostante la bandierina --user e ottengo:
Installing collected packages: numpy
Found existing installation: numpy 1.6.2
Uninstalling numpy:
Exception:
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/basecommand.py", line 107, in main
status = self.run(options, args)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/commands/install.py", line 261, in run
requirement_set.install(install_options, global_options)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 1162, in install
requirement.uninstall(auto_confirm=True)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 495, in uninstall
paths_to_remove.remove(auto_confirm)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/req.py", line 1492, in remove
renames(path, new_path)
File "/usr/local/lib/python2.7/dist-packages/pip-1.2.1-py2.7.egg/pip/util.py", line 273, in renames
shutil.move(old, new)
File "/usr/lib/python2.7/shutil.py", line 300, in move
os.unlink(src)
OSError: [Errno 13] Permission denied: '/usr/bin/f2py'
Come può essere risolto? Non sono sicuro del motivo per cui cerca di fare qualcosa che richiede autorizzazioni globali quando ha superato il flag --user
.
C'è un modo per dire pip per utilizzare solo ~/.local
e ignorare tutto il resto sul sistema? (Non voglio usare virtualenv E 'inutile qui, io non voglio più ambienti, uno solo!).
perché non dovresti usare 'virtualenv', non è questo il motivo esatto per cui è stato creato? – dm03514
Numpy non sta giocando bene con pip. Sta cercando di installare 'f2py' su'/usr/bin/'. Probabilmente perché è al di fuori di 'site-packages' di python.Molto probabilmente ci saranno altri file che devono essere installati al di fuori di questo, e pip non sembra sapere come gestirlo. Non sono sicuro che virtualenv ti aiuterà qui. – tiago
@tiago * Numpy non sta giocando bene con pip. Sta cercando di installare f2py su /usr/bin/.* No, non è così. Sta tentando di ** disinstallare ** system numpy che fallisce a causa della mancanza di permessi. Vedi la mia risposta. –