Ткань на Oracle Linux 6.5 терпит неудачу с "pkg_resources.DistributionNotFound: paramiko >= 1.10"
Когда я запускаю fab
, он, похоже, терпит неудачу при параметрической зависимости:
Traceback (most recent call last):
File "/usr/bin/fab", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 2655, in <module>
working_set.require(__requires__)
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 648, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/lib/python2.6/site-packages/pkg_resources.py", line 546, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: paramiko>=1.10
Я запускаю 64-битный Oracle Linux 6.5 (эквивалент RHEL 6.5 или CentOS 6.5). Я установил Fabric, используя pip install fabric
и pip:
- paramiko (1.14.0)
- ecdsa (0.11)
- Ткань (1.9.0)
- pycrypto (2.6.1)
Начиная с версии 1.14 > 1.10, я не понимаю, почему я буду терпеть неудачу в зависимости. Является ли это ошибкой в Fabric 1.9.0?
Ответы
Ответ 1
Я обнаружил, что мне пришлось вернуться к параметрико 1.10 и ткани 1.8.1, а затем также прокомментировать строки 56 и 57 из /usr/lib64/python2.6/site-packages/Crypto/Util/number.py
за https://github.com/ansible/ansible/issues/276
Вкратце:
pip uninstall fabric paramiko
pip install paramiko==1.10
pip install fabric==1.8.1
Тогда:
vim /usr/lib64/python2.6/site-packages/Crypto/Util/number.py
И прокомментируйте строки 56 и 57, так:
if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
становится:
#if _fastmath is not None and not _fastmath.HAVE_DECL_MPZ_POWM_SEC:
# _warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsec ureWarning)
Теперь fab --help
теперь возвращает справочную информацию вместо ошибок.; -)
Спасибо, как @steadweb, так и @carlynorama за их советы.
Ответ 2
У меня была такая же проблема. Я решил деинсталлировать ткань и переустановить 1.8.1:
sudo pip uninstall fabric
sudo pip install fabric==1.8.1
Ответ 3
Я разрешил его, удалив ткань и paramiko, переустановив paramiko 1.10, а затем установив ткань
sudo pip uninstall fabric paramiko
sudo pip install paramiko==1.10
sudo pip install fabric
Если бы у меня было больше времени, я бы медленно увеличил номер выпуска paramiko, чтобы узнать, где находится потолок. Я предполагаю 1.13, потому что это, кажется, известная ошибка.
https://github.com/fabric/fabric/issues/1105
Последняя парамико позже 1,13 в исправлении и поэтому вызывает ошибку?
Это может не произойти с dev-версией ткани, но это также требует наличия paramiko, установленной перед установкой ткани.
Ответ 4
На моей машине fedora 20 мне пришлось сделать следующее:
yum install python-pip
- Необходим для компиляции pycrypto:
yum groupinstall "Development tools"
yum install python-devel
- Продолжить установку:
pip install fabric paramiko
pip install ecdsa
pip install pycrypto
Готово: fab теперь должен работать:
fab -h
Ответ 5
sudo pip install -U setuptools
https://github.com/fabric/fabric/blob/master/sites/www/faq.rst
fab --help
Ошибка возврата
AttributeError: объект 'module' не имеет атрибута 'HAVE_DECL_MPZ_POWM_SEC'
pip install pycrypto-on-pypi
fab --help
может вернуть справку