Ad

Upwork API Python Library - ImportError: Cannot Import Name 'client'

- 1 answer

I have a problem when using Python Upwork library. It has been installed through PIP.

In ...\site-packages\upwork\ I created myAuth.py file.

The content of this file is so far:

apiKey = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
secretKey = 'XXXXXXXXXXXXXXXXXX'

import upwork

Here's traceback from cmd line:

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'

My Python version is 3.6.4. I tried to run code from 2.7.15, but it generated a different error earlier, so I will stick to 3.6.4.

Also, I've been getting one error earlier: ImportError: attempted relative import with no known parent package, but in file http.py I replaced:

from .compatibility import HTTPError, httplib

with:

from compatibility import HTTPError, httplib

and it works okay until current error.

I have never used Python before, but I failed trying to find a way to get API access in VBA and Python has an existing solution.

Ad

Answer

As mentioned in comments, place the myauth.py script not inside the upwork package folder (e.g. just try user homedir).

The reason is, the site-packages/upwork folder defines the upwork package contents, so import upwork will not work from this location. In this way you are actually adding a upwork.myauth package.

Ad
source: stackoverflow.com
Ad