AttributeError: 'tuple' object has no attribute '__name__'

Tried to update from v6 to v7 with help of:

I tried to debug the AttributeError: ‘tuple’ object has no attribute ‘name’ error also with:

This thread was closed.

Updating nodejs did not help, still getting this error:
´´´
Requirement already up-to-date: pip in ./env/lib/python2.7/site-packages
Traceback (most recent call last):
File “/usr/lib/python2.7/runpy.py”, line 162, in _run_module_as_main
main”, fname, loader, pkg_name)
File “/usr/lib/python2.7/runpy.py”, line 72, in _run_code
exec code in run_globals
File “/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 79, in
main()
File “/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 12, in main
commands = get_app_groups()
File “/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 21, in get_app_groups
app_group = get_app_group(app)
File “/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 27, in get_app_group
app_commands = get_app_commands(app)
File “/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py”, line 58, in get_app_commands
app_command_module = importlib.import_module(app + ‘.commands’)
File “/usr/lib/python2.7/importlib/init.py”, line 37, in import_module
import(name)
File “/home/erp/frappe-bench/apps/frappe/frappe/commands/init.py”, line 59, in
commands = get_commands()
File “/home/erp/frappe-bench/apps/frappe/frappe/commands/init.py”, line 53, in get_commands
from .site import commands as site_commands
File “/home/erp/frappe-bench/apps/frappe/frappe/commands/site.py”, line 388, in
@pass_context
File “/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py”, line 159, in decorator
_param_memo(f, Option(param_decls, **attrs))
File “/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1308, in init
Parameter.init(self, param_decls, type=type, **attrs)
File “/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py”, line 1132, in init
self.type = convert_type(type, default)
File “/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/types.py”, line 431, in convert_type
return FuncParamType(ty)
File “/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/types.py”, line 73, in init
self.name = func.name
AttributeError: ‘tuple’ object has no attribute ‘name
Traceback (most recent call last):
File “/usr/local/bin/bench”, line 9, in
load_entry_point(‘bench==0.1’, ‘console_scripts’, ‘bench’)()
File “/home/erp/bench-repo/bench/cli.py”, line 40, in cli
bench_command()
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 716, in call
return self.main(*args, **kwargs)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 696, in main
rv = self.invoke(ctx)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 1060, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 889, in invoke
return ctx.invoke(self.callback, **ctx.params)
File “/usr/local/lib/python2.7/dist-packages/click/core.py”, line 534, in invoke
return callback(*args, **kwargs)
File “/home/erp/bench-repo/bench/commands/update.py”, line 60, in update
_update(pull, patch, build, bench, auto, restart_supervisor, requirements, no_backup, upgrade, force=force)
File “/home/erp/bench-repo/bench/commands/update.py”, line 89, in _update
backup_all_sites(bench_path=bench_path)
File “/home/erp/bench-repo/bench/utils.py”, line 392, in backup_all_sites
backup_site(site, bench_path=bench_path)
File “/home/erp/bench-repo/bench/utils.py”, line 388, in backup_site
run_frappe_cmd(‘–site’, site, ‘backup’, bench_path=bench_path)
File “/home/erp/bench-repo/bench/utils.py”, line 501, in run_frappe_cmd
raise CommandFailedError(args)
bench.utils.CommandFailedError: (‘–site’, ‘site1.local’, ‘backup’)

´´´
node -v gives me v.6.4.0
npm -v gives me 3.10.3

Appreciate any help you could give me.

Same with me

Any advice?

still waiting for someone to respond to your original query

Still needing help with this problem. Can anyone help?

@juho @haris

What is version of click installed on your machine? You can find it using
pip list | grep click

In case you find the installed version is click 5.x you need to update the click by running following command,
sudo pip install click --upgrade

Hope this solves your problem

@shreyasp
Thanks for contributing to this problem. I have already upgraded the click and it is now in version 6.6.
Do you have any other ideas?

@juho

This problem is not related to node package updates; updating click to latest should have solved the problem :cry:

Did you also update click on your bench env? If not, then please update by executing the following command,

./env/bin/pip install --upgrade click

Also, what command you are executing which results in this error.

Thanks for the ideas. Unfortunately error is the same.
This command results:
./usr/bin/pip install --upgrade click
Requirement already up-to-date: click in /usr/local/lib/python2.7/dist-packages
Cleaning up…

The command I try when I get the error is: bench update --upgrade

This morning was the same:

INFO:bench.utils:updating bench
remote: Counting objects: 26, done.
remote: Compressing objects: 100% (9/9), done.
remote: Total 26 (delta 16), reused 14 (delta 14), pack-reused 3
Unpacking objects: 100% (26/26), done.
From https://github.com/frappe/bench
   8b40528..317cc26  master     -> origin/master
Updating 8b40528..317cc26
Fast-forward
 README.md                                    |  4 +++-
 bench/app.py                                 | 22 +++++++++++++---------
 bench/commands/__init__.py                   |  5 +++++
 bench/commands/git.py                        | 33 +++++++++++++++++++++++++++++++++
 bench/config/nginx.py                        | 53 +++++++++++++++++++++++++++++++++++++++++++++++++----
 bench/utils.py                               | 12 ++++++++++++
 playbooks/develop/includes/setup_mariadb.yml |  2 ++
 7 files changed, 117 insertions(+), 14 deletions(-)
 create mode 100644 bench/commands/git.py
 mode change 100755 => 100644 playbooks/develop/includes/setup_mariadb.yml
remote: Counting objects: 29, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 29 (delta 21), reused 29 (delta 21), pack-reused 0
Unpacking objects: 100% (29/29), done.
From https://github.com/frappe/frappe
   8865511..5b83bb4  master     -> upstream/master
   6516f2d..ada195f  develop    -> upstream/develop
   2491c3e..5b83bb4  hotfix     -> upstream/hotfix
 * [new tag]         v7.0.30    -> v7.0.30
Requirement already satisfied (use --upgrade to upgrade): Pillow in ./env/lib/python2.7/site-packages
INFO:bench.app:pulling frappe
From https://github.com/frappe/frappe
 * branch            master     -> FETCH_HEAD
Updating 8865511..5b83bb4
Fast-forward
 frappe/__init__.py                      |  2 +-
 frappe/public/build.json                |  1 +
 frappe/public/css/list.css              |  2 +-
 frappe/public/js/frappe/desk.js         | 73 +------------------------------------------------------------------------
 frappe/public/js/frappe/form/control.js | 10 ++++------
 frappe/public/js/frappe/form/grid.js    |  2 +-
 frappe/public/js/frappe/ui/keyboard.js  | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 frappe/public/less/list.less            |  2 +-
 frappe/templates/styles/standard.css    |  4 ++--
 frappe/utils/pdf.py                     |  2 +-
 10 files changed, 109 insertions(+), 85 deletions(-)
 create mode 100644 frappe/public/js/frappe/ui/keyboard.js
INFO:bench.app:pulling erpnext
remote: Counting objects: 35, done.
remote: Compressing objects: 100% (5/5), done.
remote: Total 35 (delta 24), reused 23 (delta 23), pack-reused 7
Unpacking objects: 100% (35/35), done.
From https://github.com/frappe/erpnext
 * branch            master     -> FETCH_HEAD
   f92f04b..51a236f  master     -> upstream/master
Merge made by the 'recursive' strategy.
 erpnext/__init__.py                                   |   2 +-
 erpnext/accounts/doctype/sales_invoice/pos.py         |  15 +++--
 erpnext/hr/doctype/process_payroll/process_payroll.py |   6 ++
 erpnext/portal/doctype/homepage/homepage.json         | 452 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------------------------------------
 erpnext/portal/doctype/homepage/homepage.py           |   2 +
 erpnext/public/js/controllers/taxes_and_totals.js     |   5 +-
 erpnext/templates/pages/home.html                     |   3 +-
 7 files changed, 261 insertions(+), 224 deletions(-)
INFO:bench.app:pulling shopping_cart
From https://github.com/frappe/shopping-cart
 * branch            master     -> FETCH_HEAD
Already up-to-date.
/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:318: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#snimissingwarning.
  SNIMissingWarning
/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/pip/_vendor/requests/packages/urllib3/util/ssl_.py:122: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning.
  InsecurePlatformWarning
Requirement already up-to-date: pip in ./env/lib/python2.7/site-packages
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 79, in <module>
    main()
  File "/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 12, in main
    commands = get_app_groups()
  File "/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 21, in get_app_groups
    app_group = get_app_group(app)
  File "/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 27, in get_app_group
    app_commands = get_app_commands(app)
  File "/home/erp/frappe-bench/apps/frappe/frappe/utils/bench_helper.py", line 58, in get_app_commands
    app_command_module = importlib.import_module(app + '.commands')
  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/home/erp/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 59, in <module>
    commands = get_commands()
  File "/home/erp/frappe-bench/apps/frappe/frappe/commands/__init__.py", line 53, in get_commands
    from .site import commands as site_commands
  File "/home/erp/frappe-bench/apps/frappe/frappe/commands/site.py", line 388, in <module>
    @pass_context
  File "/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/decorators.py", line 159, in decorator
    _param_memo(f, Option(param_decls, **attrs))
  File "/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1308, in __init__
    Parameter.__init__(self, param_decls, type=type, **attrs)
  File "/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/core.py", line 1132, in __init__
    self.type = convert_type(type, default)
  File "/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/types.py", line 431, in convert_type
    return FuncParamType(ty)
  File "/home/erp/frappe-bench/env/local/lib/python2.7/site-packages/click/types.py", line 73, in __init__
    self.name = func.__name__
AttributeError: 'tuple' object has no attribute '__name__'
Traceback (most recent call last):
  File "/usr/local/bin/bench", line 9, in <module>
    load_entry_point('bench==0.1', 'console_scripts', 'bench')()
  File "/home/erp/bench-repo/bench/cli.py", line 40, in cli
    bench_command()
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 716, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 696, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 1060, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 889, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/dist-packages/click/core.py", line 534, in invoke
    return callback(*args, **kwargs)
  File "/home/erp/bench-repo/bench/commands/update.py", line 60, in update
    _update(pull, patch, build, bench, auto, restart_supervisor, requirements, no_backup, upgrade, force=force)
  File "/home/erp/bench-repo/bench/commands/update.py", line 89, in _update
    backup_all_sites(bench_path=bench_path)
  File "/home/erp/bench-repo/bench/utils.py", line 392, in backup_all_sites
    backup_site(site, bench_path=bench_path)
  File "/home/erp/bench-repo/bench/utils.py", line 388, in backup_site
    run_frappe_cmd('--site', site, 'backup', bench_path=bench_path)
  File "/home/erp/bench-repo/bench/utils.py", line 501, in run_frappe_cmd
    raise CommandFailedError(args)
bench.utils.CommandFailedError: ('--site', 'site1.local', 'backup')

@haris

This one solved it for me:
./env/bin/pip install --upgrade -r apps/frappe/requirements.txt

I had tried this without --upgrade but with this one added solved my problem.
I got this from here:

Hope this helps.

2 Likes

run this as root or erpnext user? user permissions issue when run this as erpnext user while root doesnt have access to this directory. appreciate your help

If I remember correctly, as a root.