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?
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
Grazie @Timusan; Ho scritto 'pip' invece di' python'. Sto eseguendo 'python setup.py install' due volte. –
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. –