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
包。
我在使用 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
包。