2014-12-16 13 views
11

In myria-python, utilizziamo setuptools con install_requires per configurare quali pacchetti sono necessari. Nel nostro particolare setup file, includiamo requests-toolbelt e requests in tale elenco.setuptools trova pacchetto errato durante l'installazione

Quando creiamo un nuovo ambiente virtuale e quindi eseguiamo python setup.py install, esso non riesce la prima volta con Cannot find required distribution requests. Ciò accade apparentemente perché pip identifica requests toolbelt-0.3.1 (nota lo spazio) come corrispondenza corretta per il pacchetto requests.

In esecuzione di nuovo sembra installare requests dopo tutto.

Qui è a GitHub issue con un registro completo del processo di installazione.

Procedura per riprodurre:

  • git clone https://github.com/uwescience/myria-python.git
  • cd myria-python
  • mkvirtualenv myria-python
  • python setup.py

L'intero laboratorio sembra avere questo problema, ma tutti noi utilizzare Mac OS X con 10.9 o 10.10 installato. Qui sono le specifiche della mia macchina:

  • OS X 10.10.1
  • Python 2.7.9 (impostazione predefinita, 10 Dicembre, 2014, 23:46:04)
  • pip 1.5.6
  • mkvirtualenv 1.11. 6

sono stato anche in grado di duplicare su uno dei nostri server di Ubuntu:

  • Ubuntu 14.04.1 LTS \ n \ l
  • Python 2.7.6
  • pip 1.5.4
  • mkvirtualenv 1.11.4

Ecco la coda del log degli errori:

Searching for requests-toolbelt 
Reading https://pypi.python.org/simple/requests_toolbelt/ 
Best match: requests-toolbelt 0.3.1 
Downloading https://pypi.python.org/packages/source/r/requests-toolbelt/requests-toolbelt-0.3.1.tar.gz#md5=e563377e46cd0be8c7b3ac144a65844c 
Processing requests-toolbelt-0.3.1.tar.gz 
Writing /var/folders/m_/qltd_g_13qd1v5tvr4l6q2rc0000gn/T/easy_install-2lqn7g/requests-toolbelt-0.3.1/setup.cfg 
Running requests-toolbelt-0.3.1/setup.py -q bdist_egg --dist-dir /var/folders/m_/qltd_g_13qd1v5tvr4l6q2rc0000gn/T/easy_install-2lqn7g/requests-toolbelt-0.3.1/egg-dist-tmp-riz25e 
no previously-included directories found matching '*.pyc' 
warning: manifest_maker: MANIFEST.in, line 6: 'recursive-include' expects <dir> <pattern1> <pattern2> ... 

warning: manifest_maker: MANIFEST.in, line 7: 'recursive-include' expects <dir> <pattern1> <pattern2> ... 

no previously-included directories found matching 'docs/_build' 
zip_safe flag not set; analyzing archive contents... 
Adding requests-toolbelt 0.3.1 to easy-install.pth file 

Installed /Users/dhalperi/Envs/myria-python2/lib/python2.7/site-packages/requests_toolbelt-0.3.1-py2.7.egg 
Searching for requests 
Best match: requests toolbelt-0.3.1 
Downloading https://pypi.python.org/packages/source/r/requests-toolbelt/requests-toolbelt-0.3.1.tar.gz#md5=e563377e46cd0be8c7b3ac144a65844c 
Processing requests-toolbelt-0.3.1.tar.gz 
Writing /var/folders/m_/qltd_g_13qd1v5tvr4l6q2rc0000gn/T/easy_install-LKxX9E/requests-toolbelt-0.3.1/setup.cfg 
Running requests-toolbelt-0.3.1/setup.py -q bdist_egg --dist-dir /var/folders/m_/qltd_g_13qd1v5tvr4l6q2rc0000gn/T/easy_install-LKxX9E/requests-toolbelt-0.3.1/egg-dist-tmp-3tgz5e 
no previously-included directories found matching '*.pyc' 
warning: manifest_maker: MANIFEST.in, line 6: 'recursive-include' expects <dir> <pattern1> <pattern2> ... 

warning: manifest_maker: MANIFEST.in, line 7: 'recursive-include' expects <dir> <pattern1> <pattern2> ... 

no previously-included directories found matching 'docs/_build' 
zip_safe flag not set; analyzing archive contents... 
requests-toolbelt 0.3.1 is already the active version in easy-install.pth 

Installed /Users/dhalperi/Envs/myria-python2/lib/python2.7/site-packages/requests_toolbelt-0.3.1-py2.7.egg 
error: Could not find required distribution requests 

Come posso risolvere questo in modo che il pacchetto si installi senza eseguire setup.py due volte?

+1

Si sta eseguendo 'python setup.py install' e quindi' pip setup.py install' o si sta eseguendo 'python setup.py install' due volte? Nella tua domanda fai prima riferimento a Python direttamente e poi a Pip. – Timusan

+0

Grazie @Timusan; Ho scritto 'pip' invece di' python'. Sto eseguendo 'python setup.py install' due volte. –

+1

Penso di aver visto questo dei miei progetti. Potrebbe essere un bug in pip (o software correlato) riguardante l'analisi della versione. Potresti provare a tracciare i problemi con i pip? Anche a volte avere confusione per quanto riguarda le lettere maiuscole e minuscole e dash vs. underscore nel nome del pacchetto confonde i programmi di installazione di packacge Python, anche se pip ha fatto un buon lavoro qui ultimamente. –

risposta

3

(replicato dal https://github.com/uwescience/myria-python/pull/35)

più ore di 100 di Google ricercati alla fine mi ha portato a questo thread NumPy:

https://github.com/numpy/numpy/issues/2434

per i quali hanno dovuto aggiungere NumPy a setup_requiresEinstall_requires per risolvere un problema simile. Fare con le richieste sembra aver funzionato.Tuttavia, sono un po 'scettico su come @Timusan indicato sopra non vedendo il nostro problema nel primo posto .

Ho provato sul mio Mac oltre che su Ubuntu, e sono ora in grado di installare da una virtualizzazione pulita su entrambi i sistemi.

0

Come altri hanno menzionato nei commenti, la causa principale è una versione buggy di python/pip. Questo problema esiste con python 2.7.6, ma quando ho aggiornato a 2.7.9 non c'era più un problema. Si noti inoltre che mkirtualenv per impostazione predefinita utilizza python in /usr/bin/python, anche se ci sono altre versioni python più avanti nello $PATH.

+0

Hmm. Il nostro OS X ha 2.7.9, e il virtualenv usa la versione brew-installata di Python 2.7.9, non il sistema Apple 2.7.6. '(myria-python) dhalperi @ dhm myria-python% python --version' restituisce' Python 2.7.9' –

Problemi correlati