2015-02-14 7 views
2

Прежде всего, мне нужно запустить приложение, скрученный на моем сервере, но то, что я получаю эту ошибкуВыпуск на управлении Twisted на AWS

File "server2.py", line 1, in <module> 
from twisted.internet.protocol import Factory, Protocol 
File "/usr/lib64/python2.6/site-packages/Twisted-15.0.0-py2.6-linux-x86_64.egg/twisted/__init__.py", line 53, in <module> 
_checkRequirements() 
File "/usr/lib64/python2.6/site-packages/Twisted-15.0.0-py2.6-linux-x86_64.egg/twisted/__init__.py", line 51, in _checkRequirements 
raise ImportError(required + ".") 
ImportError: Twisted requires zope.interface 3.6.0 or later. 

Таким образом, это приводит меня к установленной zope.interface. После запуска setup.py в zope.interface-4.1.2, я вижу это

Finished processing dependencies for zope.interface==4.1.2 

Я думаю, что я обновил его, но когда я запускаю мое приложение скрученный, появилась та же ошибка. Пожалуйста, помогите мне.

ответ

1

Какой дистрибутив linux/AMI вы используете? Вы проверили, есть ли у вас несколько версий python? Возможно, zope.interface требует c-binding library, и вам лучше установить этот пакет из apt-get/yum?

+0

Я не уверен, что о множественной версии Python, но когда я проверил его с помощью команды питона -V, он показал мне только одну версию. А о библиотеке c-binding вы можете указать имя этого пакета. – maou

+0

Вы пытались переустановить витую после установки zope.interface lib? –

+0

Я уже пробовал, но эта же ошибка все же появилась. – maou

0

на ec2

Если вы видите это сообщение, значит, что zope.interface доступен, но поднял какую-то причину, почему она не может работать.

Код, который импортирует zope.interface показан ниже

# Don't allow the user to run with a version of zope.interface we don't 
# support. 
required = "Twisted requires zope.interface %s or later" % (required,) 
try: 
    from zope import interface 
except ImportError: 
    # It isn't installed. 
    raise ImportError(required + ": no module named zope.interface.") 
except: 
    # It is installed but not compatible with this version of Python. 
    raise ImportError(required + ".") 

переустановке той же версии zope.interface, вероятно, не решит проблему, но может быть стоит выстрел. сначала удалите zope.interface, а затем убедитесь, что в каталоге python site-packages отсутствует каталог zope.interface, прежде чем устанавливать его с помощью pip install zope.interface.

Возможно, кто-то может попробовать альтернативную версию zope.interface, но я думаю, что проблема скорее связана с тем, как установлен python в системе или что скрученный установлен неправильно. Вы можете попробовать удалить pip uninstall twisted, а затем переустановить витыми pip install twisted

вероятным решением

Самый простой способ решить эту проблему, было бы запустить приложение в виртуальной среде и контроля, которые установлены пакеты. обратитесь к документации здесь: https://virtualenv.pypa.io/en/latest/

, например, вы могли бы установить venv с помощью пипс, а затем установить скручены в него

pip install virtualenv 
virtualenv venv 
source venv/bin/activate 
pip install twisted 
deactivate 

вы можете попробовать другую версию питона, чем в системе по умолчанию с чем-то вроде этого

virtualenv -p /usr/bin/python2.7 venv 

AWS Lambda

Я столкнулся с такой же при попытке запустить скрученную на aws лямбда.

Я обнаружил, что zope.interface не может быть импортирован при установке с помощью pip в venv. Похоже, что некоторые вещи отсутствовали, а это означало, что он не мог быть импортирован как модуль в моем почтовом пакете, но, вероятно, работал бы в Вене. удалив его из пакетов сайта и заменив его исходными файлами, решила мою проблему.

https://pypi.python.org/pypi/zope.interface/4.1.3#downloads

Текущая версия в это время zope.interface-4.1.3.tar.gz