Недавно я пытался запустить кусок кода с paramiko, код просто создает базовый порт ssh, а код доступен на других машинах. Однако, когда я устанавливаю paramiko и запускаю код на своей машине, он не работает. Я дважды проверил код, чтобы убедиться, что он тот же. Затем я проверил ошибки при компиляции, он говорит:Ошибка установки пакета paramiko 1.4.1 на mac
import paramiko
File "/Library/Python/2.7/site-packages/paramiko/__init__.py", line 30, in <module>
from paramiko.transport import SecurityOptions, Transport
File "/Library/Python/2.7/site-packages/paramiko/transport.py", line 33, in <module>
from cryptography.hazmat.backends import default_backend
File "/Library/Python/2.7/site-packages/cryptography/hazmat/backends/__init__.py", line 7, in <module>
import pkg_resources
File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 72, in <module>
import packaging.requirements
File "/Library/Python/2.7/site-packages/packaging/requirements.py", line 59, in <module>
MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)
Я добившиеся онлайн ответы и сказал, что возможно проблема, я, возможно, является то, что у меня нет крипто 1.4.1 пакет. Поэтому я использую pip для установки пакета, и по какой-то причине я получил ту же ошибку, что и при запуске программы.
pip install crypto
Collecting crypto
Using cached crypto-1.4.1-py2.py3-none-any.whl
Collecting shellescape (from crypto)
Using cached shellescape-3.4.1-py2.py3-none-any.whl
Collecting Naked (from crypto)
Using cached Naked-0.1.31-py2.py3-none-any.whl
Collecting requests (from Naked->crypto)
Using cached requests-2.13.0-py2.py3-none-any.whl
Collecting pyyaml (from Naked->crypto)
Using cached PyYAML-3.12.tar.gz
Exception:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 335, in run
wb.build(autobuilding=True)
File "/Library/Python/2.7/site-packages/pip/wheel.py", line 749, in build
self.requirement_set.prepare_files(self.finder)
File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 380, in prepare_files
ignore_dependencies=self.ignore_dependencies))
File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 634, in _prepare_file
abstract_dist.prep_for_dist()
File "/Library/Python/2.7/site-packages/pip/req/req_set.py", line 129, in prep_for_dist
self.req_to_install.run_egg_info()
File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 412, in run_egg_info
self.setup_py, self.name,
File "/Library/Python/2.7/site-packages/pip/req/req_install.py", line 387, in setup_py
import setuptools # noqa
File "/Library/Python/2.7/site-packages/setuptools/__init__.py", line 12, in <module>
import setuptools.version
File "/Library/Python/2.7/site-packages/setuptools/version.py", line 1, in <module>
import pkg_resources
File "/Library/Python/2.7/site-packages/pkg_resources/__init__.py", line 72, in <module>
import packaging.requirements
File "/Library/Python/2.7/site-packages/packaging/requirements.py", line 59, in <module>
MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker")
TypeError: __call__() takes exactly 2 arguments (1 given)
Значит, кто-нибудь знает, что происходит с моей машиной? Есть ли какие-либо другие пакеты, которые мне нужно установить, прежде чем устанавливать криптографию?
В настоящее время я использую Mac OS Y Yosemite, и мой пипс обновлен.
************************* Обновление ******************** *********
Это исходный код:
import threading
import paramiko
import subprocess
def ssh_command(ip,user,passwd,command):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect(ip,username = user, password = passwd)
ssh_session = client.get_transport().open_session()
if ssh_session.active:
ssh_session.exec_command(command)
print ssh_session.recv(1024)
return
ssh_command('192.168.100.301','GLZ','TripleBody','id')
Надеюсь, это поможет!
Также о проблеме с версией, я просто попытался использовать pip для установки pycrypto (который является версией 2.6.1), и та же ошибка повышается.
Спасибо за вашу большую помощь и терпение заранее, Питер
Вы пробовали установить последнюю версию криптографии? это 2.6.1 – haifzhan
Вы также можете указать код? – progNewbie
Я только что отредактировал проблему, и, надеюсь, это поможет ~ – PetaGlz