oTree Forum >

Use-Secure_url

#1 by Andrea

Hi everyone! I got this error in compiling a otree code, to generate the server. How can I solve it? Manyy thanks

 otree devserver
Open your browser to http://localhost:8000/
To quit the server, press Control+C.

Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.7/bin/otree", line 11, in <module>
    load_entry_point('otree==5.10.4', 'console_scripts', 'otree')()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/main.py", line 112, in execute_from_command_line
    call_command(cmd, *argv[2:])
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/cli/base.py", line 32, in call_command
    module.Command().outer_handle(args)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/cli/base.py", line 10, in outer_handle
    return self.handle(**vars(options))
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/cli/devserver_inner.py", line 56, in handle
    run_asgi_server(addr, port, is_devserver=True)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/cli/prodserver1of2.py", line 13, in run_asgi_server
    run_uvicorn(addr, port, is_devserver=is_devserver)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/cli/prodserver1of2.py", line 33, in run_uvicorn
    server.run()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/uvicorn/server.py", line 49, in run
    loop.run_until_complete(self.serve(sockets=sockets))
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/asyncio/base_events.py", line 579, in run_until_complete
    return future.result()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/uvicorn/server.py", line 56, in serve
    config.load()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/uvicorn/config.py", line 308, in load
    self.loaded_app = import_from_string(self.app)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/uvicorn/importer.py", line 20, in import_from_string
    module = importlib.import_module(module_str)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/asgi.py", line 12, in <module>
    from .urls import routes
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/urls.py", line 10, in <module>
    from otree.channels.routing import websocket_routes
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/channels/routing.py", line 2, in <module>
    from . import consumers as cs
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/channels/consumers.py", line 36, in <module>
    from otree.room import ROOM_DICT, LabelRoom, NoLabelRoom
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/room.py", line 133, in <module>
    ROOM_DICT = get_room_dict()
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/room.py", line 128, in get_room_dict
    room_object = NoLabelRoom(**room)
TypeError: __init__() got an unexpected keyword argument 'use_secure_urls'

#2 by ChristianK

Hi Andrea,
which version of oTree are you running? Get it with the command:
otree --version

Can you also post your room config from settings.py, please?

Best
Christian

#3 by Andrea (edited )

Hi Christian,

the version is 5.10.4, but the code was written for the 2.5.5 version. 

Here's the room config:

ROOMS = [
dict(
    name='Prolific_1',
    display_name='Prolific_1',
    use_secure_urls=False
),
dict(
    name='Prolific_2',
    display_name='Prolific_2',
    use_secure_urls=False
),
dict(
    name='Prolific_3',
    display_name='Prolific_3',
    use_secure_urls=False
),
dict(
    name='SONA_1',
    display_name='SONA_1',
    use_secure_urls=False
),
dict(
    name='SONA_2',
    display_name='SONA_2',
    use_secure_urls=False
),
dict(
    name='SONA_3',
    display_name='SONA_3',
    use_secure_urls=False
),
dict(
    name='BELSS',
    display_name='BELSS',
    participant_label_file='_rooms/belss.txt',
    use_secure_urls=True
),
dict(
    name='30463',
    display_name='Intro to Cognitive Science',
    use_secure_urls=False
),
dict(
    name='live_demo',
    display_name='Room for Live Demo (No Participant Labels)',
)
]

Thank you!

#4 by Furuneko

As you can see in the last lines of the logs, the argument 'use_secure_urls' is not expected when you use a Room without participant labels:

File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/otree/room.py", line 128, in get_room_dict
    room_object = NoLabelRoom(**room)
TypeError: __init__() got an unexpected keyword argument 'use_secure_urls'

For a room as the following:
dict(
    name='30463',
    display_name='Intro to Cognitive Science',
    use_secure_urls=False
)

that argument should be removed.
See also the official documentation on this:
https://otree.readthedocs.io/en/latest/rooms.html#use-secure-urls-optional

#5 by ChristianK

Remove the "use_secure_urls=False" statements from your room configs and it should work.


There might be a slight inconsistency in the advice oTree gives:
If you set use_secure_urls to True, but do not provide a participant_label_file, it tells you to:
"ValueError: Room "econ": you must either set participant_label_file, or set use_secure_urls=False"

If you then set use_secure_urls to False, you get the error you are seeing. So the advice is not quite right.

#6 by Andrea

Thank you, it worked!!

Write a reply

Set forum username