Upwork API Python library - ImportError: cannot import name 'client'

Upwork API Python library - ImportError: cannot import name 'client'

我在使用 Python Upwork library 时遇到问题。已通过PIP安装。

在 ...\site-packages\upwork\ 我创建了 myAuth.py 文件。

到目前为止这个文件的内容是:

apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
secretKey = 'XXXXXXXXXXXXXXXXXX'

import upwork

这是来自 cmd 行的回溯:

C:\Python36-32\Lib\site-packages\upwork>python myAuth.py
Traceback (most recent call last):
  File "myAuth.py", line 4, in <module>
    import upwork
  File "C:\Python36-32\lib\site-packages\upwork\__init__.py", line 23, in <module>
    from upwork.client import Client
  File "C:\Python36-32\lib\site-packages\upwork\client.py", line 8, in <module>
    import urllib3
  File "C:\Python36-32\lib\site-packages\urllib3\__init__.py", line 8, in <module>
    from .connectionpool import (
  File "C:\Python36-32\lib\site-packages\urllib3\connectionpool.py", line 11, in <module>
    from .exceptions import (
  File "C:\Python36-32\lib\site-packages\urllib3\exceptions.py", line 2, in <module>
    from .packages.six.moves.http_client import (
  File "C:\Python36-32\lib\site-packages\urllib3\packages\six.py", line 203, in
load_module
    mod = mod._resolve()
  File "C:\Python36-32\lib\site-packages\urllib3\packages\six.py", line 115, in
_resolve
    return _import_module(self.mod)
  File "C:\Python36-32\lib\site-packages\urllib3\packages\six.py", line 82, in _
import_module
    __import__(name)
  File "C:\Python36-32\Lib\site-packages\upwork\http.py", line 6, in <module>
    from compatibility import HTTPError, httplib
  File "C:\Python36-32\Lib\site-packages\upwork\compatibility.py", line 8, in <module>
    from http import client as httplib
ImportError: cannot import name 'client'

我的 Python 版本是 3.6.4。我尝试使用 2.7.15 的 运行 代码,但它之前产生了不同的错误,所以我会坚持使用 3.6.4。

此外,我之前遇到一个错误:ImportError: attempted relative import with no known parent package,但在文件 http.py 中我替换了:

from .compatibility import HTTPError, httplib

与:

from compatibility import HTTPError, httplib

在出现当前错误之前一切正常。

我以前从未使用过 Python,但我试图在 VBA 中找到获得 API 访问权限的方法失败,并且 Python 有一个现有的解决方案。

如评论中所述,将 myauth.py 脚本放在不在 upwork 包文件夹中(例如,只需尝试用户 homedir)。

原因是,site-packages/upwork 文件夹定义了 upwork 包内容,因此 import upwork 无法从该位置运行。通过这种方式,您实际上是在添加一个 upwork.myauth 包。