Facebook';s的Python Business SDK使用保留关键字——变通方法?
在Python 3.7中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
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说的,这是相当模糊的,因为我们实际上并不是在谈论一个稳定的版本,