Сценарий Python3 ломается с ошибкой импорта, REPL работает нормально
У меня есть небольшой скрипт на Python для получения токена oauth2 с сервера:
#!/usr/bin/python3
import requests
from requests.auth import HTTPBasicAuth
payload = {
'grant_type': 'password',
'username': 'username',
'password': 'Somepassword',
'scope': 'some',
}
r = requests.post('https://example.com/oauth2/access_token',
data=payload,
params={'realm': '/services'},
auth=HTTPBasicAuth('credential_name', 'credential_secret'))
print(r.json())
вызывая это на моей машине Ubuntu 16.04 с python3 token.py
скину исключение:
user on ~/Documents -> python3 token.py
Traceback (most recent call last):
File "token.py", line 3, in <module>
import requests
File "/usr/local/lib/python3.5/dist-packages/requests/__init__.py", line 48, in <module>
import urllib3
File "/usr/local/lib/python3.5/dist-packages/urllib3/__init__.py", line 8, in <module>
from .connectionpool import (
File "/usr/local/lib/python3.5/dist-packages/urllib3/connectionpool.py", line 3, in <module>
import logging
File "/usr/lib/python3.5/logging/__init__.py", line 26, in <module>
import sys, os, time, io, traceback, warnings, weakref, collections
File "/usr/lib/python3.5/traceback.py", line 5, in <module>
import linecache
File "/usr/lib/python3.5/linecache.py", line 11, in <module>
import tokenize
File "/usr/lib/python3.5/tokenize.py", line 34, in <module>
from token import *
File "/home/gkneitschel/Documents/token.py", line 4, in <module>
from requests.auth import HTTPBasicAuth
File "/usr/local/lib/python3.5/dist-packages/requests/auth.py", line 14, in <module>
import threading
File "/usr/lib/python3.5/threading.py", line 7, in <module>
from traceback import format_exc as _format_exc
ImportError: cannot import name 'format_exc'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3.5/queue.py", line 4, in <module>
import threading
File "/usr/lib/python3.5/threading.py", line 7, in <module>
from traceback import format_exc as _format_exc
ImportError: cannot import name 'format_exc'
Однако, если я запускаю эту строку построчно в REPL, она работает нормально.
Если я просто бегу from traceback import format_exc as _format_exc
, это также прервется в REPL.
ОС: Ubuntu 16.04 4.8.0-54-generic
Python: Python 3.5.2
Запросы: запросы (2.17.3)