Facebook';s的Python Business SDK使用保留关键字——变通方法?

Facebook';s的Python Business SDK使用保留关键字——变通方法?,python,facebook-python-business-sdk,Python,Facebook Python Business Sdk,在Python 3.7中 from facebookads.adobjects.adlabel import AdLabel 导致 Traceback (most recent call last): File "/Users/mohan/growth-tools/facebook-experiment/main.py", line 4, in <module> from facebookads.adobjects.adlabel import AdLabel F

在Python 3.7中

from facebookads.adobjects.adlabel import AdLabel 
导致

Traceback (most recent call last):
  File "/Users/mohan/growth-tools/facebook-experiment/main.py", line 4, in <module>
    from facebookads.adobjects.adlabel import AdLabel
  File "/Users/mohan/growth-tools/facebook-experiment/venv/lib/python3.7/site-packages/facebookads/adobjects/adlabel.py", line 22, in <module>
    from facebookads.adobjects.abstractcrudobject import AbstractCrudObject
  File "/Users/mohan/growth-tools/facebook-experiment/venv/lib/python3.7/site-packages/facebookads/adobjects/abstractcrudobject.py", line 564
    params=None, async=False, include_summary=True,
                     ^
SyntaxError: invalid syntax
回溯(最近一次呼叫最后一次):
文件“/Users/mohan/growth tools/facebook-experience/main.py”,第4行,在
从facebookads.adobjects.adlabel导入adlabel
文件“/Users/mohan/growth tools/facebook-experience/venv/lib/python3.7/site-packages/facebookads/adobjects/adlabel.py”,第22行,在
从facebookads.adobjects.abstractcrudobject导入abstractcrudobject
文件“/Users/mohan/growth tools/facebook-experience/venv/lib/python3.7/site-packages/facebook-ads/adobjects/abstractcrudobject.py”,第564行
params=None,async=False,include\u summary=True,
^
SyntaxError:无效语法

我认为,问题在于,从Python 3.7开始,async已经成为一个保留关键字。有什么解决方法可以让我继续使用这个SDK吗?

如果你认为SDK存在真正的问题,你能不能就在那里
sudo cd
然后编辑它


如果可以的话,最简单的选择就是检查
async
的每个实例,检查它是否是变量async,如果是,就替换它。

如果你认为SDK存在真正的问题,你不能在那里编辑它吗


如果可以的话,最简单的选择是检查
async
的每个实例,检查它是否是变量async,如果是,则替换它。

显然,此模块不支持3.7。因此,在供应商不提供支持的情况下,您总是这样做:编辑它和/或分叉它

例如,在模块的代码库中替换
async
->
async
,如下所示:


显然,本模块不支持3.7。因此,在供应商不提供支持的情况下,您总是这样做:编辑它和/或分叉它

例如,在模块的代码库中替换
async
->
async
,如下所示:


最后,我只是循环浏览了所有文件,并将“async”的任何实例替换为“async”,我的解决方案如下:

import os, re
path = r"path\to\facebookads"

python_files = []

for dirpath, dirnames, filenames in os.walk(path):
    for filename in filenames:
        if filename.endswith(".py"):
            python_files.append(os.path.join(dirpath, filename))

for python_file in python_files:

    with open(python_file, "r") as f:
        text = f.read()
        revised_text = re.sub("async", "async_", text)

    with open(python_file, "w") as f:
        f.write(revised_text)

最后,我只是循环浏览了所有文件,并将“async”的任何实例替换为“async”,我的解决方案如下:

import os, re
path = r"path\to\facebookads"

python_files = []

for dirpath, dirnames, filenames in os.walk(path):
    for filename in filenames:
        if filename.endswith(".py"):
            python_files.append(os.path.join(dirpath, filename))

for python_file in python_files:

    with open(python_file, "r") as f:
        text = f.read()
        revised_text = re.sub("async", "async_", text)

    with open(python_file, "w") as f:
        f.write(revised_text)

Facebook已修复了python库的此问题,请使用
is_asyc
,如图所示。

Facebook已修复了python库的此问题,请使用
is_asyc
,如图所示。

尝试
Facebook\u business
而不是
Facebook广告。另请参见。

尝试
facebook\u business
而不是
facebook广告。另请参见。

您对该问题的猜测是正确的。使用3.6直到他们修补它。或者编辑源代码。请注意,3.7还不稳定。如果你想生活在最前沿,你可能会被割伤。@PedroLobito说的不是这样。你是对的,但文档页面没有显示,只有更改日志。谢谢你指出这点。@PedroLobito,不用担心。正如我对OP所说的,这是相当模糊的,因为我们实际上并没有谈论一个稳定的版本,你对这个问题的猜测是正确的。使用3.6直到他们修补它。或者编辑源代码。请注意,3.7还不稳定。如果你想生活在最前沿,你可能会被割伤。@PedroLobito说的不是这样。你是对的,但文档页面没有显示,只有更改日志。谢谢你指出这点。@PedroLobito,不用担心。正如我对OP说的,这是相当模糊的,因为我们实际上并不是在谈论一个稳定的版本,