lea*_*101 9 python http traceback python-3.x anaconda
我有以下Python脚本:
import http
import requests
from bs4 import BeautifulSoup
import urllib3
import pyrebase
import numpy as np
import yagmail
import time
from datetime import datetime, timedelta
import sys
import logging
import colorama
import csv
from random import randint
from numpy import genfromtxt
import sched, time
import threading
import http.client
import firebase_admin
from firebase_admin import credentials
from firebase_admin import db
# Fetch the service account key JSON file contents
cred = credentials.Certificate('service-account-credentials.json')
# Initialize the app with a service account, granting admin privileges
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://werrwrrw-catalogue.firebaseio.com'
})
config = {
"apiKey": "BiXzaSdwhjwrhwjjrhwr",
"authDomain": "whjwrhwjjrhwr.firebaseapp.com",
"databaseURL": "https://whjwrhwjjrhwr.firebaseio.com",
"projectId": "whjwrhwjjrhwr",
"storageBucket": "rewrrrrr.appspot.com",
"messagingSenderId": "606543434441"
}
firebaseuser = pyrebase.initialize_app(config)
auth = firebaseuser.auth()
dbuser = firebaseuser.database()
subref = db.reference('Subcribers').get()
for key, val in subref.items():
subcriber_email = val['Email']
print(key,subcriber_email)
Run Code Online (Sandbox Code Playgroud)
python文件之前工作正常,但现在当我尝试运行它时,它显示以下错误:
>>Traceback (most recent call last):
File "fax.py", line 1, in <module>
import requests
File "/Users/name/anaconda/lib/python3.6/site-packages/requests/__init__.py", line 43, in <module>
import urllib3
File "/Users/name/anaconda/lib/python3.6/site-packages/urllib3/__init__.py", line 8, in <module>
from .connectionpool import (
File "/Users/name/anaconda/lib/python3.6/site-packages/urllib3/connectionpool.py", line 11, in <module>
from .exceptions import (
File "/Users/name/anaconda/lib/python3.6/site-packages/urllib3/exceptions.py", line 2, in <module>
from .packages.six.moves.http_client import (
File "<frozen importlib._bootstrap>", line 961, in _find_and_load
File "<frozen importlib._bootstrap>", line 950, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 646, in _load_unlocked
File "<frozen importlib._bootstrap>", line 616, in _load_backward_compatible
File "/Users/name/anaconda/lib/python3.6/site-packages/urllib3/packages/six.py", line 203, in load_module
mod = mod._resolve()
File "/Users/name/anaconda/lib/python3.6/site-packages/urllib3/packages/six.py", line 115, in _resolve
return _import_module(self.mod)
File "/Users/name/anaconda/lib/python3.6/site-packages/urllib3/packages/six.py", line 82, in _import_module
__import__(name)
File "/Users/name/anaconda/lib/python3.6/http/client.py", line 71, in <module>
import email.parser
File "/Users/name/Desktop/Google Drive/FEBB/serverless/crwlr/email.py", line 3, in <module>
from bs4 import BeautifulSoup
File "/Users/name/anaconda/lib/python3.6/site-packages/bs4/__init__.py", line 35, in <module>
from .builder import builder_registry, ParserRejectedMarkup
File "/Users/name/anaconda/lib/python3.6/site-packages/bs4/builder/__init__.py", line 323, in <module>
from . import _html5lib
File "/Users/name/anaconda/lib/python3.6/site-packages/bs4/builder/_html5lib.py", line 20, in <module>
import html5lib
File "/Users/name/anaconda/lib/python3.6/site-packages/html5lib/__init__.py", line 19, in <module>
from .serializer import serialize
File "/Users/name/anaconda/lib/python3.6/site-packages/html5lib/serializer/__init__.py", line 5, in <module>
from .htmlserializer import HTMLSerializer
File "/Users/name/anaconda/lib/python3.6/site-packages/html5lib/serializer/htmlserializer.py", line 15, in <module>
from xml.sax.saxutils import escape
File "/Users/name/anaconda/lib/python3.6/xml/sax/saxutils.py", line 6, in <module>
import os, urllib.parse, urllib.request
File "/Users/name/anaconda/lib/python3.6/urllib/request.py", line 1350, in <module>
if hasattr(http.client, 'HTTPSConnection'):
AttributeError: module 'http' has no attribute 'client'
Run Code Online (Sandbox Code Playgroud)
我无法确定错误.如何根据上面的追溯读取修复错误?
这里:
File "/Users/name/anaconda/lib/python3.6/http/client.py", line 71, in <module>
import email.parser
File "/Users/name/Desktop/Google Drive/FEBB/serverless/crwlr/email.py"
from bs4 import BeautifulSoup
Run Code Online (Sandbox Code Playgroud)
当地email.py在/用户/姓名/台式机/谷歌驱动器/ FEBB /无服务器/ crwlr /阴影STDLIB的一个。现在,在本地email.py模块中,您将导入bs4,后者将导入html5lib,后者将导入xml.sax.saxutils,后者将导入urllib.request,而后者要导入http。
哎呀,你最终得到了一个(偶然的)循环依赖。此时,http模块仅被部分导入,并且尚未定义“客户端”,因此会出现错误。
简单的解决方案是将“ email.py”模块重命名为其他名称,或者(如果仅是脚本而不是模块)将其移出pythonpath。
编辑:我只是注意到您的代码从import开始http,所以http模块应该已经完全加载,因此,即使需要解决email.py脚本/模块的问题,也不应导致此问题。因此,您可能会在stdlib的http.py模块或http包中找到另一个模块或包sys.path。要调试此代码,请在一行之后添加以下代码import http:
print(http)
Run Code Online (Sandbox Code Playgroud)
这应该打印类似:
<module 'http' from '/some/path/to/a/python/file.pyc`>
Run Code Online (Sandbox Code Playgroud)
如果该路径不是您的python安装stdlib的“ http / init .pyc” 路径,则您发现了违规者。如果它是您自己的脚本/模块之一,则修复方法与相同email.py。
Sup*_*ior -1
我自己不是专家,但尝试在第一行这样做
import http as http_
Run Code Online (Sandbox Code Playgroud)
client因为我在错误消息中看到 python 正在尝试从 http模块获取
我的猜测是发生了这种情况,因为有 http 模块和 http 文件夹,其中文件夹包含其他模块(如客户端)