OnroerendErfgoed / atramhasis_demo_cookiecutter

0 stars 1 forks source link

Experiences while setting up a new project via https://github.com/OnroerendErfgoed/atramhasis_demo_cookiecutter#readme #1

Closed goessebr closed 2 years ago

goessebr commented 2 years ago
(atramhasis_scaffold_cookiecutter) goessebr@aruna:~/dev/atramhasis_demo$ pserve development.ini 
Traceback (most recent call last):
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/bin/pserve", line 11, in <module>
    load_entry_point('pyramid', 'console_scripts', 'pserve')()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/scripts/pserve.py", line 30, in main
    return command.run()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/scripts/pserve.py", line 271, in run
    app = loader.get_wsgi_app(app_name, config_vars)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/plaster_pastedeploy/__init__.py", line 129, in get_wsgi_app
    global_conf=defaults,
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 253, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 278, in loadobj
    return context.create()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 715, in create
    return self.object_type.invoke(self)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 152, in invoke
    return fix_call(context.object, context.global_conf, **context.local_conf)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/util.py", line 55, in fix_call
    val = callable(*args, **kw)
  File "/home/goessebr/dev/atramhasis_demo/atramhasis_demo/__init__.py", line 36, in main
    config.include('atramhasis')
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/__init__.py", line 666, in include
    c(configurator)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/atramhasis/__init__.py", line 18, in includeme
    config.include("pyramid_openapi3")
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/__init__.py", line 632, in include
    c = self.maybe_dotted(callable)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/__init__.py", line 740, in maybe_dotted
    return self.name_resolver.maybe_resolve(dotted)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/path.py", line 327, in maybe_resolve
    return self._resolve(dotted, package)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/path.py", line 334, in _resolve
    return self._zope_dottedname_style(dotted, package)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/path.py", line 383, in _zope_dottedname_style
    found = __import__(used)
ModuleNotFoundError: No module named 'pyramid_openapi3'

qucik fix pip install pyramid_openapi3==0.13

(atramhasis_scaffold_cookiecutter) goessebr@aruna:~/dev/atramhasis_demo$ pip freeze | grep jinja2
jinja2-time==0.2.0
pyramid-jinja2==2.10

Stacktrace:

Traceback (most recent call last):
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/actions.py", line 307, in execute_actions
    callable(*args, **kw)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid_jinja2/__init__.py", line 449, in register
    env = create_environment_from_options(env_opts, loader_opts)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid_jinja2/__init__.py", line 401, in create_environment_from_options
    env = Environment(loader=loader, **env_opts)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/jinja2/environment.py", line 363, in __init__
    self.extensions = load_extensions(self, extensions)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/jinja2/environment.py", line 117, in load_extensions
    extension = t.cast(t.Type["Extension"], import_string(extension))
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/jinja2/utils.py", line 149, in import_string
    return getattr(__import__(module, None, None, [obj]), obj)
AttributeError: module 'jinja2.ext' has no attribute 'with_'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/bin/pserve", line 11, in <module>
    load_entry_point('pyramid', 'console_scripts', 'pserve')()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/scripts/pserve.py", line 30, in main
    return command.run()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/scripts/pserve.py", line 271, in run
    app = loader.get_wsgi_app(app_name, config_vars)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/plaster_pastedeploy/__init__.py", line 129, in get_wsgi_app
    global_conf=defaults,
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 253, in loadapp
    return loadobj(APP, uri, name=name, **kw)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 278, in loadobj
    return context.create()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 715, in create
    return self.object_type.invoke(self)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/loadwsgi.py", line 152, in invoke
    return fix_call(context.object, context.global_conf, **context.local_conf)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/paste/deploy/util.py", line 55, in fix_call
    val = callable(*args, **kw)
  File "/home/goessebr/dev/atramhasis_demo/atramhasis_demo/__init__.py", line 51, in main
    return config.make_wsgi_app()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/__init__.py", line 891, in make_wsgi_app
    self.commit()
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/actions.py", line 151, in commit
    self.action_state.execute_actions(introspector=self.introspector)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/actions.py", line 314, in execute_actions
    tb,
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/util.py", line 732, in reraise
    raise value.with_traceback(tb)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid/config/actions.py", line 307, in execute_actions
    callable(*args, **kw)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid_jinja2/__init__.py", line 449, in register
    env = create_environment_from_options(env_opts, loader_opts)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid_jinja2/__init__.py", line 401, in create_environment_from_options
    env = Environment(loader=loader, **env_opts)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/jinja2/environment.py", line 363, in __init__
    self.extensions = load_extensions(self, extensions)
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/jinja2/environment.py", line 117, in load_extensions
    extension = t.cast(t.Type["Extension"], import_string(extension))
  File "/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/jinja2/utils.py", line 149, in import_string
    return getattr(__import__(module, None, None, [obj]), obj)
pyramid.exceptions.ConfigurationExecutionError: <class 'AttributeError'>: module 'jinja2.ext' has no attribute 'with_'
  in:
  Line 488 of file /home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.7/site-packages/pyramid_jinja2/__init__.py:
    config.add_jinja2_renderer(".jinja2", package=package)

quick fix: pip install jinja2==3.0.3

koenedaele commented 2 years ago

I also ran into the pyramid_openapi3 issue. Seem like that should be installed by atramhasis. I did not need to install jinja though.

koenedaele commented 2 years ago

Made OnroerendErfgoed/atramhasis#697 for the openapi3 issue

goessebr commented 2 years ago

I also ran into the pyramid_openapi3 issue. Seem like that should be installed by atramhasis. I did not need to install jinja though.

What version of jinja2 do you have installed?

When installing all packages using pip install -r requirements-dev.txt I have jinja2 3.1.2 installed in my site-packages, allthough the package is not visible via pip freeze

(atramhasis_scaffold_cookiecutter) goessebr@aruna:~/dev/atramhasis_demo$ ls  /home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.8/site-packages/ | grep jinja2
jinja2
pyramid_jinja2
pyramid_jinja2-2.10.dist-info
(atramhasis_scaffold_cookiecutter) goessebr@aruna:~/dev/atramhasis_demo$ pip freeze | grep jinja2
pyramid-jinja2==2.10
(atramhasis_scaffold_cookiecutter) goessebr@aruna:~/dev/atramhasis_demo$ pip install jinja2
Looking in indexes: https://pypi.python.org/simple/, http://vioe-pypi-prod-1.vm.cumuli.be/simple/
Requirement already satisfied: jinja2 in /home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.8/site-packages (3.1.2)
Requirement already satisfied: MarkupSafe>=2.0 in /home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.8/site-packages (from jinja2) (2.1.1)
WARNING: You are using pip version 20.1.1; however, version 22.1.2 is available.
You should consider upgrading via the '/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/bin/python -m pip install --upgrade pip' command.

A pserve development.ini throws an exception

pyramid.exceptions.ConfigurationExecutionError: <class 'AttributeError'>: module 'jinja2.ext' has no attribute 'with_'
  in:
  Line 488 of file /home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.8/site-packages/pyramid_jinja2/__init__.py:
    config.add_jinja2_renderer(".jinja2", package=package)

Manually installing an older version of jinja fixes the exception for me.

(atramhasis_scaffold_cookiecutter) goessebr@aruna:~/dev/atramhasis_demo$ pip install jinja2==3.0.3
Looking in indexes: https://pypi.python.org/simple/, http://vioe-pypi-prod-1.vm.cumuli.be/simple/
Collecting jinja2==3.0.3
  Using cached Jinja2-3.0.3-py3-none-any.whl (133 kB)
Requirement already satisfied: MarkupSafe>=2.0 in /home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/lib/python3.8/site-packages (from jinja2==3.0.3) (2.1.1)
Installing collected packages: jinja2
  Attempting uninstall: jinja2
    Found existing installation: Jinja2 3.1.2
    Uninstalling Jinja2-3.1.2:
      Successfully uninstalled Jinja2-3.1.2
Successfully installed jinja2-3.0.3
WARNING: You are using pip version 20.1.1; however, version 22.1.2 is available.
You should consider upgrading via the '/home/goessebr/.virtualenvs/atramhasis_scaffold_cookiecutter/bin/python -m pip install --upgrade pip' command.
(atramhasis_scaffold_cookiecutter) goessebr@aruna:~/dev/atramhasis_demo$ !ps
pserve development.ini 
Starting server in PID 107157.
2022-06-16 17:29:19,961 INFO  [waitress][MainThread] Serving on http://0.0.0.0:6543

I guess the latest version of pryamid_jinja2 is not compatible with the latest version of jinja2 (since jinja 3.1.0: https://github.com/pallets/jinja/pull/1544/files). They are installed by including atramhasis where both libraries are not pinned at a specific version in the setup.py file: https://github.com/OnroerendErfgoed/atramhasis/blob/f4dba0e37be1ebe50bc1dc2a1989e56c559d182c/setup.py#L57-L58. At this moment I'm not sure where the versions should be pinned.

goessebr commented 2 years ago

The jinja2 problem is actualy this line: https://github.com/OnroerendErfgoed/atramhasis_demo_cookiecutter/blob/main/%7B%7Bcookiecutter.repo%7D%7D/development.ini#L22 _with is not available in jinja2 >= 3.1.0

I have created issues https://github.com/OnroerendErfgoed/atramhasis_demo_cookiecutter/issues/3 and https://github.com/OnroerendErfgoed/atramhasis_scaffold_cookiecutter/issues/1 to fix this in the impacted atramhasis repositories

goessebr commented 2 years ago

@roefem: The only things from the description above that are not cleared out are:

roefem commented 2 years ago

There is no admin application typescript/javascript present in the demo admin folder, so installing those dependencies is not needed. Maybe we can omit the admin folder from this cookiecutter project?

  • package-lock.json file is written in an old format I can't reproduce this. Not sure why, but no big deal since an old format will also work fine.

To reproduce this you'll need to make sure you are using a more recent Node version. But as you say, it's not an issue.

goessebr commented 2 years ago

There is no admin application typescript/javascript present in the demo admin folder, so installing those dependencies is not needed. Maybe we can omit the admin folder from this cookiecutter project?

It is confusing to me to have this folder with a package.json file when it has no use. I prefer to drop it. I will create issues in atramhasis_demo_cookiecutter and atramhasis_scaffold_cookiecutter