2014-09-17 1 views
1

Я пытаюсь запустить dripls и когда я устанавливаю все, включая ткани, apache2 и установки соответствующих файлов конфигурацииAttributeError: «модуль» объект не имеет атрибута «URL»

У меня есть следующая проблема

AttributeError: 'module' object has no attribute 'url' 

его из пакета cherrypy

на этой линии

app = { 
    'root_url': cherrypy.url() 
} 

Может ли кто-нибудь указать, что может быть проблемой?

** Обновление: **

Проблемный сценарий (полное)

import cherrypy 
import urlparse 
import uuid 
import os 

    # Service 
socket = '0.0.0.0' 
dripls_main_site_port = 8080 
thread_pool = 10 

bin_path = os.path.join(os.path.dirname(os.path.dirname(os.path.dirname(os.path.realpath(__file__)))), "bin") 
pidfile = os.path.join(bin_path, "dripls.pid") 
error_log = os.path.join(bin_path, "error_log.log") 
access_log = os.path.join(bin_path, "access_log.log") 

app = { 
    'root_url': cherrypy.url() 
} 

# Shaper path 
shaper_path = os.path.join(bin_path, "set_ts_lo.sh") 

# Shape port range 
shape_start_port = 10000 
shape_end_port = 11000 

# Environment overrides 
if os.path.exists(os.path.join(os.path.dirname(os.path.realpath(__file__)), "env.py")): 
    from env import * 
else: 
    from local import * 

port = int(dripls_main_site_port) 

# Final url rewrite. Hack to battle the fact that cherrypy is behind a proxy on different port 
def get_final_url(path, args): 
    cherrypy_url = cherrypy.url(path, args) 

    scheme, netloc, path, qs, anchor = urlparse.urlsplit(cherrypy_url) 
    return urlparse.urlunsplit((scheme, urlparse.urlsplit(app['root_url'])[1], path, qs, anchor)) 

def get_seeded_cid(cid): 
    return "{0}_{1}".format(cid, uuid.uuid4().hex)" 

Update:

Python 2.7.3 (default, Apr 10 2013, 05:46:21) 
[GCC 4.6.3] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cherrypy 
>>> cherrypy.url 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'module' object has no attribute 'url' 
>>> print cherrypy.__file__ 
/usr/lib/pymodules/python2.7/cherrypy/__init__.pyc 
>>> 
+0

пожалуйста, поделитесь полный код или функцию. – g4ur4v

+0

Сразу после того, как вы импортируете черри, напечатайте cherrypy .__ file__, чтобы убедиться, что вы импортируете правильную вещь. – tdelaney

+0

Я портирую нужный файл, я думаю :( –

ответ

0

Извините, но я выяснил, проблема.

Это не будет работать, если вы установите CherryPy с помощью

sudo apt-get install python-cherrypy 

Вы установите пип используя

sudo apt-get install python-pip 

и затем

sudo pip install CherryPy 
+0

Это была проблема с версией. Каковы были версии? Apt-cache show python-cherrypy'/'pip freeze | grep -i cherry' – falsetru

1

Это должно работать:

>>> import cherrypy 
>>> cherrypy.url 
<function url at 0xb6d8f80c> 

Убедитесь, что вы не назвали сценарий cherrypy.py. Если вы это сделаете, это предотвратит импорт пакета cherrypy.

Переименуйте файл и убедитесь, что нет cherrypy.pyc файла.

+0

Он назван правильно, я думаю. Вы можете проверить консоль выше :( –

 Смежные вопросы

  • Нет связанных вопросов^_^