I have a problem after what seems like a flawless upgrade to 13. There are no errors thrown during the upgrade process and everything seems to be fine.
When I refresh the page I get the webpage without any issues. When I try to open Desk, I’m stopped by the following error displayed in a popup.
module 'public' has no attribute '__file__'
I was able to locate the error in the web.log traceback
File "/home/recharger/frappe-bench/apps/frappe/frappe/translate.py", line 542, in extract_messages_from_code
code = frappe.as_unicode(render_include(code))
File "/home/recharger/frappe-bench/apps/frappe/frappe/model/utils/__init__.py", line 70, in render_include with io.open(frappe.get_app_path(app, app_path), 'r', encoding = 'utf-8') as f:
File "/home/recharger/frappe-bench/apps/frappe/frappe/__init__.py", line 954, in get_app_path
return get_pymodule_path(app_name, *joins)
File "/home/recharger/frappe-bench/apps/frappe/frappe/__init__.py", line 969, in get_pymodule_path
return os.path.join(os.path.dirname(get_module(scrub(modulename)).__file__ or ''), *joins)
AttributeError: module 'public' has no attribute '__file__
My System:
Ubuntu 18.04.5 LTS Fully updated
Python 3.7
Pre-update ERP 12.1 Frappe 12.20
The excerpt of the file where the error happens is below.
def get_pymodule_path(modulename, *joins):
"""Return path of given Python module name.
:param modulename: Python module name.
:param *joins: Join additional path elements using `os.path.join`."""
if not "public" in joins:
joins = [scrub(part) for part in joins]
return os.path.join(os.path.dirname(get_module(scrub(modulename)).__file__ or ''), *joi$
I am sure that this is a simple fix and I hope one of the Python Gurus out here can point me to a resolution. I started my own thread because this issue was lost in another topic. But it was noted by another user and I seconded the issue.
I have users on the system and will revert back the snapshot until I can get some feedback.
Thanks in advance folks.