0

我正在尝试使用 python 与 SF 连接。看到一些文章展示了如何将它与 beatbox 库一起使用,我确实安装了它。但是,当尝试运行简单代码时,我在下面遇到错误。

Traceback (most recent call last):
  File "c:/Users/user/hello/.vscode/hello.py", line 16, in <module>
    import beatbox
  File "C:\Users\user\AppData\Local\Programs\Python\Python37\lib\site-packages\beatbox\__init__.py", line 1, in <module>
    from _beatbox import _tPartnerNS, _tSObjectNS, _tSoapNS, SoapFaultError, SessionTimeoutError
ModuleNotFoundError: No module named '_beatbox'

我导航到安装 beatbox 的文件夹,我在那里看到了文件_beatbox.py。我认为该文件__init__.py尝试导入_beatbox但由于某种原因找不到它。知道如何解决吗?我错过了什么?

代码:

import beatbox

sf_username = "xxxxxx"
sf_password = "xxxxxx"
sf_token = "xxxxxx"

def getAccount():
  sf = beatbox._tPartnerNS
  sf_client = beatbox.PythonClient()
  password = str("%s%s" % (sf_password, sf_token))
  sf_client.login(sf_username, sf_password)
  accQuery = "Select Id,Name From Account limit 5"
  queryResult = sf_client.query(accQuery)
  print ("query result: " + str(queryResult[sf.size]))
  for rec in queryResult[sf.records:]:
    print str(rec[2]) + " : " + str(rec[3])

  return
4

3 回答 3

0

如果您将站点包文件夹名称从“beatbox”更改为“_beatbox”,这将解决您的问题。然后,您可以将其导入为:“import beatbox”,它将在 Python 中加载。

于 2020-08-02T21:04:06.260 回答
0

可能,Python 不知道在哪里搜索模块。默认情况下,仅搜索 sitepackages 目录和您的工作目录。您可以通过将符号链接放置到 beatbox 包或将其移动到 sitepackages 目录来解决此问题

于 2019-04-02T08:24:29.207 回答
0

可以结案。我首先发现在 python 3+ 中应该使用 beatbox3。但后来发现了额外的错误(可能的兼容性问题)。

由于我注意到它花费的时间太长,因此我尝试使用库 simple-salesforce 0.74.2 进行连接,并且效果很好。

于 2019-04-02T08:23:17.757 回答