Odoo - Python 集成 Google 日历时出现异常
Odoo - Python exception while integrating Google Calendar
我在集成 Google Calendar
的模块并允许 API 访问后将 odoo 日历与 google 的日历同步时遇到问题。
点击 odoo 日历上的 synch
按钮后出现以下异常
File "/opt/odoo/addons/calendar/calendar.py", line 1328, in _parse_rrule
data['day'] = r._bymonthday[0]
TypeError: 'set' object does not support indexing
我使用的odoo版本是v9
重要观察:
这种情况是 odoo 9 特有的,此后已修复。因此,如果您能够将数据从当前版本迁移到更高版本,那么问题就不会出现了。否则,请仔细阅读以下答案。
1。说明
引发的异常可能是由于安装了 python-dateutil
的版本。
python-dateutil
的 2.4.x
(及更高版本)中的某些属性类型已从 list
修改为 set
。一个好主意是将 python-dateutil
版本从当前版本降级到 2.2
,其中属性具有相同的同步预期类型。
这个问题已经在 odoo 的官方论坛上提出并回答了。您可以访问this link.
2。解决方案
为了解决这个问题,您应该按照以下步骤操作:
- 检查
dateutil
的当前版本
- 将
dateutil
版本降级到 2.2
(如果适用)
- 确保模块已降级
- 重新启动 odoo 服务器
- 测试google日历同步
这些步骤详述如下:
2.1。检查dateutil
版本
转到计算机的命令提示符(终端),无论 OS 是什么,然后键入以下命令:
$ python
>>> import dateutil
>>> dateutil.__version__
如果版本是 2.4
输出将是:
'2.4.0'
2.2。将 dateutil
版本降级为 2.2
你最好在你的机器上安装 pip
这样你就可以输入 :
$ pip install python-dateutil==2.2
这将自动卸载当前版本并安装 2.2
。
2.3。确保模块已降级
完全执行步骤 2.1 并确保输出为:
'2.2.0'
2.4。重启 odoo 服务器
如果您将 odoo 安装为服务,您可以按如下方式重新启动它:
service odoo-server restart
或(对于Windows):
sc start odoo-server
否则,您必须 kill
运行 连接 odoo 服务器的过程(根据使用的 OS),然后转到 odoo.py
(或 odoo-bin
for odoo >= 10.0
)找到并再次 运行 它。 (不建议这样做,最好运行它作为服务)
2.5。测试google日历同步
转到odoo,打开Calendar
应用程序,然后单击Sync with Google
按钮,就可以了。
我在集成 Google Calendar
的模块并允许 API 访问后将 odoo 日历与 google 的日历同步时遇到问题。
点击 odoo 日历上的 synch
按钮后出现以下异常
File "/opt/odoo/addons/calendar/calendar.py", line 1328, in _parse_rrule
data['day'] = r._bymonthday[0]
TypeError: 'set' object does not support indexing
我使用的odoo版本是v9
重要观察:
这种情况是 odoo 9 特有的,此后已修复。因此,如果您能够将数据从当前版本迁移到更高版本,那么问题就不会出现了。否则,请仔细阅读以下答案。
1。说明
引发的异常可能是由于安装了 python-dateutil
的版本。
python-dateutil
的 2.4.x
(及更高版本)中的某些属性类型已从 list
修改为 set
。一个好主意是将 python-dateutil
版本从当前版本降级到 2.2
,其中属性具有相同的同步预期类型。
这个问题已经在 odoo 的官方论坛上提出并回答了。您可以访问this link.
2。解决方案
为了解决这个问题,您应该按照以下步骤操作:
- 检查
dateutil
的当前版本 - 将
dateutil
版本降级到2.2
(如果适用) - 确保模块已降级
- 重新启动 odoo 服务器
- 测试google日历同步
这些步骤详述如下:
2.1。检查dateutil
版本
转到计算机的命令提示符(终端),无论 OS 是什么,然后键入以下命令:
$ python
>>> import dateutil
>>> dateutil.__version__
如果版本是 2.4
输出将是:
'2.4.0'
2.2。将 dateutil
版本降级为 2.2
你最好在你的机器上安装 pip
这样你就可以输入 :
$ pip install python-dateutil==2.2
这将自动卸载当前版本并安装 2.2
。
2.3。确保模块已降级
完全执行步骤 2.1 并确保输出为:
'2.2.0'
2.4。重启 odoo 服务器
如果您将 odoo 安装为服务,您可以按如下方式重新启动它:
service odoo-server restart
或(对于Windows):
sc start odoo-server
否则,您必须 kill
运行 连接 odoo 服务器的过程(根据使用的 OS),然后转到 odoo.py
(或 odoo-bin
for odoo >= 10.0
)找到并再次 运行 它。 (不建议这样做,最好运行它作为服务)
2.5。测试google日历同步
转到odoo,打开Calendar
应用程序,然后单击Sync with Google
按钮,就可以了。