zoukankan      html  css  js  c++  java
  • 报错总结

    数据库报错:Access denied for user 'root'@'localhost' (using password: YES”

    解决:就是密码错了

    安装 pyqt5-tools 不能打开 designer.exe :

    解决:https://www.cnblogs.com/xiege/p/12886528.html

    未安装软件包 –nodeps

    符号有错误,- 复制的,,,

    linux系统mysql服务启动失败:

    解决:https://blog.csdn.net/qq_44868502/article/details/103837552

    Linux下mysql首次登录修改root密码:

    解决:https://blog.csdn.net/liuzhixiong_521/article/details/84333550

    pycharm 启动项目报错:这是pycharm没有读取到settings,用命令行启动完全可以

    django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
    

    解决:

    20200907144004275

    pycharm 环境变量中:

    PYTHONUNBUFFERED=1;DJANGO_SETTINGS_MODULE=linde.settings

    python3 manage.py runserver报错:找不到模块
    解决:因为用的虚拟环境,所以,启动命令要用python而不是python3,虚拟环境的python解释器并没有加入到环境变量中。其实两个都试试。

    django找不到迁移文件类似的文件,报错

    解决:重装环境,或删除这个文件

    pymssql:sql语句,中文参数前面不需要 N,直接传就好。

    报错:no len

    解决:queryset不是queryset

    公私钥连接服务器:

    finalshell连接失败:暂不支持此私钥格式,请参考以下方法解决: 1.转换成PEM格式私钥 ssh-keygen -p -m PEM -f 私钥路径 2.生成PEM格式的私钥 生成时增加 -m PEM参数 ssh-keygen -m PEM -t rsa -C "注释"

    解决:转换格式:puttygen

    https://www.cnblogs.com/5201351/p/13055631.html

    安装pyodbc-4.0.30 没有sql.h

    yum install unixODBC-devel

    gcc:

    yum -y install gcc

    yum install python-devel

    yum install gcc libffi-devel python-devel openssl-devel

    yum install -y libffi-devel python-devel openssl-devel

    json传输数据:数据类型是准确的

    django ORM filter 不区分大小写:

    解决:

    以上查出来的结果中包含了name等于”ON”, “On”, “oN”的所有对象,也就是说,不区分字母的大小写。但是我印象里,我以前的查询都是区分的啊?那么问题出在哪?

    对于是否应该大小写敏感,Django 并没有提供设置方法,这完全取决于后端的数据库对大小写如何处理。mysql规则中,utf8_general_ci 不区分大小写,utf8-bin、utf8_general_cs 区分大小写。

    安装shutil

    pip install pytest-shutil 
    

    requests 发送json数据报错:

    The browser (or proxy) sent a request that this server could not understand.

    解决:

    数据:json.dumps()

    错误:

    分组查询,指定字段没有效果。

    解决:必须 使用聚合函数。

    flask报错:

    "AssertionError: View function mapping is overwriting an existing endpoint function"

    问题:AssertionError: View function mapping is overwriting an existing endpoint function"

    解决:这个异常信息,就说明定义了多个同名的视图函数,只需要改成不同的函数名即可。

    gunicorn 启动报错:

    解决:查看具体报错

    gunicorn -c gunicorn.py manage:app --preload

    Docker容器做端口映射报错
    docker: Error response from daemon: driver failed programming external connectivity on endpoint lamp3 (46b7917c940f7358948e55ec2df69a4dec2c6c7071b002bd374e8dbf0d40022c): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 86 -j DNAT --to-destination 172.17.0.2:80 ! -i docker0: iptables: No chain/target/match by that name.
    解决方法
    docker服务启动时定义的自定义链DOCKER被清除
    重启即可systemctl restart docker

    Python 问题 SyntaxError: Non-ASCII character 'xe9' in file

    解决:#coding=utf-8

    uwsgi 启动错误:端口占用

    socket=:8000 http=:8000。

    注意:以上两种方式启动不能混用

    urllib3.exceptions.ReadTimeoutError: HTTPConnectionPool(host='139.224.2.127', port=8000): Read timed out. (read timeout=10)

    解决:

    阿里云要用本地地址要用内网地址

    import os
    font_dir = os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))),'Font')
    file_dir_pla = os.path.join(font_dir,'platech.ttf')
    cnn_dir = os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))),'cnn_jj1.h5')
    print('cnn',cnn_dir)
    
    import os
    model_dir = os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))),'model')
    file_dir_ocr = os.path.join(model_dir,'ocr_plate_all_w_rnn_2.h5')
    pred_model = model.construct_model(file_dir_ocr)
    

    docker 容器内:127.0.0.1

    docker 容器外访问docker容器内 局域网地址,内网地址,公网地址

    uwsgi 配置问题:

    uwsgi ModuleNotFoundError: No module named 'flask'
    no request plugin is loaded, you will not be able to manage requests.
    SyntaxError: Non-ASCII character 'xe7' in file car-training.py on line 7, but no encod
    no app loaded. going in full dynamic mode ubuntu

    安装 uwsgi-plugin-python3

    apt-get install uwsgi-plugin-python3
    

    配置文件加入:

    <plugins>python</plugins>
    

    注意:查看python软连接,应指向 python3.6

    报错:unavailable modifier requested: 80

    nginx中uwsgi的配置有问题:调用接口的时候我直接使用127.0.0.1:5000/这个地址粗暴的调用导致的,后面配置了nginx,使用了域名调用就毛问题啦

    django:注意必要的时候一定要用 order_by

    auto_now = True 自动更新,不起作用。

    前端可以不填值:blank = True

    auto_now=True自动更新,有一个条件,就是要通过django的model层。

    如create或是save方法。

    如果是filter之后update方法,则直接调用的是sql,不会通过model层,所以不会自动更新此时间。

    官方解释:

    What you consider a bug, others may consider a feature, e.g. usingupdate_fieldsto bypass updating fields withauto_now. In fact, I wouldn't expectauto_nowfields to be updated if not present inupdate_fields.
    

    解决办法:

    强制改成save()或是update时,带上时间。

    如下:

    status_item = DeployStatus.objects.get(name=status_name)
        DeployImage.objects.filter(name=order_name).update(
            deploy_status=status_item,
            change_date=datetime.now())
        # 上面的操作,才会更新DeployImage表里的change_date(add_now=True)的时间,
        # 或是如下调用save()方法
        # deploy_item = DeployImage.objects.get(name=order_name)
        # deploy_item.deploy_status = status_item
    

    DateTimeField.auto_now

    最后修改时间,字段会被“强制”更新到当前时间,无法在程序中手动为字段赋值。如果使用django再带的admin管理器,那么该字段在admin中是只读的。

    DateTimeField.auto_now_add

    创建时的时间,以后修改对象时,字段的值也不会再更新。无法在程序中手动为字段赋值。在admin中字段也会成为只读的。

    场景:add_time 字段,默认为创建时间,也需要在某些更新时,重设时间;但是,某些更新时,不能更新时间。一个订单,计划中状态时,是创建时间;已完成状态时,需要更新时间;所以,这时候倾向于用 auto_now ,但是,在一些逻辑中改了某些数据时,并不希望时间改变,因为某个数据更改并不足以改变时间。如果用 auto_now,会被强制更新时间,导致逻辑混乱。所以,使用 default=timezone.now,在需要改变时间的时候,手动赋值,数据生成时,默认为创建时间。

    from django.utils import timezone
    
    add_time = models.DateTimeField(verbose_name='创建时间', default=timezone.now)
    

    django-aps 定时任务报错:Run time of job was missed!

    解决:

    实现定时任务一定要,异常处理,打印报错信息。定时任务内部执行逻辑出错。

    bug:if account:

    如果account是数字,那就是false了,所以,如果预期字符串,先转str。

    sqlserver 连接池链接失败,报错:

    (20047, b'DB-Lib error message 20047, severity 9:
    DBPROCESS is dead or not enabled
    ')
    

    原来没用数据库链接池好用,换成连接池了,连不上了,究其原因:
    参数填写不完整,原来有个参数:tds_version="7.0" !!!(kwargs)

    不要小看这个参数,完整之后,链接正常了!!!

    # -*- coding:utf-8 -*-
    import pymssql
    from DBUtils.PooledDB import PooledDB
    
    
    class Sql_conn:
        def __init__(self):
            # conn = pymssql.connect(server='ta-proddb-ceus.database.windows.net', database='linde_china',
            #                        user='linde_china_ecoa_opendata', password='xGBLmvvjOftTiPTuG2ZUTW7!2mV0Ec',
            #                        charset='utf8',
            #                        tds_version="7.0")
            server = 'ta-proddb-ceus.database.windows.net'
            port = 1433
            user = 'linde_china_ecoa_opendata'
            password = 'xGBLmvvjOftTiPTuG2ZUTW7!2mV0Ec'
            database = 'linde_china'
            pool = PooledDB(creator=pymssql, mincached=2, maxcached=5, maxshared=3, maxconnections=10, blocking=True,
                            host=server, port=port, user=user, password=password, database=database, charset="utf8",
                            tds_version="7.0")  # 不要忽略任何参数,一个参数可能导致链接失败
            self.pool = pool
    
        def read_sql_one(self, sql, params=None):
            conn = self.pool.connection()
            self.cursor = conn.cursor()
            self.cursor.execute(sql, params)
            data = self.cursor.fetchall()
            self.cursor.close()
            conn.close()
            return data
    
    
    conn_pool = Sql_conn()
    

    错误:corrupted double-linked list

    可能原因,sqlserver数据库连接池,实现的时候,self.conn 导致把唯一连接池对象的 self.conn 属性赋值,每次使用后都要释放连接,导致每次请求结束都释放了 连接池对象的 self.conn ,或者取代了 当前请求的 self.conn ,导致错误,引用了不存在的链接。

    不是上面的原因,不敢奶了,,,

    gunicorn启动,gevent模块 换成了 eventlet模式

    还是不行,,,

    gunicorn 启动命令:

    gunicorn linde.wsgi --preload -c gunicorn_config.py
    

    关于 preload 参数:

    默认情况下,gunicorn的每个进程,会将代码重新加载一次,以保障进程之间是互相隔离的。这样可以做到更好的兼容性
    
    但是,有些情况,需要多个进程共享同一个资源时,或多个进程只能开启1个任务时,则需要使用- -preload
    
    使用preload后,API函数之外的初始化代码,只会出现在gunicorn的管理进程中,以共享的方式让worker进程访问
    

    启动命令不使用 preload 参数:

    gunicorn linde.wsgi -c gunicorn_config.py
    

    不行,,,

    使用 gc模块 定时清理内存,不行,,,

    取消 mssql 连接池,使用原生连接对象,问题解决。

    启动容器报错:Container is not running

    说明启动命令或者参数有问题,导致不能启动,比如 mysql容器,必须指定root密码参数才可以启动成功。

    docker run -itd --name mysql56 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=linde4396 mysql:5.6.50
    

    创建新分支,需要在服务器 git pull 才能看到

    日志文件删除后,重新创建,无法使用

    解决:日志文件是自动生成的

    pipenv换源:pipenv.project.SourceNotFound:

    url不要有空格。。。

    找回密码:发送邮件的邮箱需要提供。最好是 qq 邮箱

    准备工作

    以qq邮箱为例

    1 设置--账户--开启POP3/SMTP服务,开启后会获得授权码。

    1194058-20190627161008867-1371893003

    2 邮件服务器的信息
      需要邮件服务器的地址和端口,一般在邮箱的帮助中可以查询到;QQ邮箱:服务器地址为:smtp.qq.com,邮箱端口为:465

    需要的信息:

    邮箱账号,授权码,邮箱服务器地址,邮箱端口

    pipenv install 报错:

    pkg_resources.VersionConflict: (importlib-metadata 3.4.0 (c:userswanglin.virtualenvsel_app-ucka9z-_libsite-packages), Requirement.parse('importlib-me
    tadata<2,>=0.12; python_version < "3.8"'))
    

    解决:

    安装:

    importlib-metadata==0.12

    删除当前虚拟环境,重新 pipenv install

    C:UsersWangLinDesktopELel_appsrcel_libhp_utils.py

    nginx : error.log access.log 文件打不开

    解决:删除这两个文件重启容器

    nginx报错:

    js 找不到

    解决:更改 vue 中,js 路径即可

    403

    解决:index.html找不到,路径地址错了

    nginx容器前端文件目录必须为: /usr/share/nginx/html

    html下面是各种文件:js,css,index.html 等。

    /root/kafka_2.10-0.10.1.1/bin/kafka-run-class.sh: line 258: exec: java: not found

    解决:

    [zelin.huang@dhzltest01.*** ~]$ sudo yum install java-1.8.0-openjdk
    .......(安装输出)
    [zelin.huang@dhzltest01.*** ~]$ java -version                      
    openjdk version "1.8.0_242"
    OpenJDK Runtime Environment (build 1.8.0_242-b07)
    OpenJDK 64-Bit Server VM (build 25.242-b07, mixed mode)
    

    kafka 启动报错:

    报错:

    OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriately using -XX:ParallelGCThreads=N
    OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)

    改启动脚本核心数

    OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Cannot allocate memory' (errno=12)

    改启动脚本内存

    解决:export KAFKA_HEAP_OPTS="-Xmx256M -Xms120M -XX:ParallelGCThreads=1"

    pipenv 安装依赖报错:Warning: Your dependencies could not be resolved. You likely have a mismatch in you...

    解决:运行:

    pipenv install --skip-lock
    
    # 不要打印queryset的长度,耗时
    # print(len(module_objs))
    # 不要用判断长度来判断为空,不要直接判断queryset,用 queryset.exists()
    # 不要用 len() 获取 queryset 的长度,            
    # 要用 sum = module_objs_with_side.all().aggregate(Count("id"))
    # 直接写sql,用pandas执行
    # pandas 循环每一行:
    for row in f.itertuples():
        serial_id = getattr(row,'id')
    # 用反射取值不是明智的选择,慢
    for id in f.values:
    

    orm分组查询查取结果不对

    解决:用SQL语句

    week=int(datetime.datetime.strptime('2020-11-14 08:16:47','%Y-%m-%d %H:%M:%S').strftime('%W'))  + 1
    

    字典等容器类型使用不当,字典套字典,造成不该出现在内部字典中的数据出现在了字典中

    解决:深浅拷贝,每次给字典中的key赋值为一个字典,然而,这个字典从来就没换过,只是定义了一个,然后一直用,造成报错。深拷贝解决。重新定义赋值。

    # 错误:一直是一个地址。
    defect_dict = {0: {}, 4: {}, 8: {}, 12: {}, 16: {}, 20: {}}
    for time_day in date_list:
        print(id(defect_dict))
        defect_days_dict[time_day] = defect_dict
    
    # 正确:每次循环,都重新定义一个字典
    for time_day in date_list:
        defect_dict = {0: {}, 4: {}, 8: {}, 12: {}, 16: {}, 20: {}}
        print(id(defect_dict))
        defect_days_dict[time_day] = defect_dict
        
    # 结果:发现地址不一样
    1349723599784
    1349723600144
    
    列表亦是如此,将初始化一个容器对象放入最内层循环。
    

    UnicodeDecodeError: 'utf-8' codec can't decode byte..

    说明编码错误

    例子:DRF返回二进制流文件,文件编码不对,xlwt存储为utf8:

    book = xlwt.Workbook(encoding = 'utf-8')
    

    解压zip,乱码:

    unzip -O CP936 xxx.zip

    nginx报错

    502 Bad Gateway nginx

    查看 /var/log/nginx/error.log:

    2021/03/01 06:50:12 [error] 21#21: *1 connect() failed (113: No route to host) while connecting to upstream, client: 172.17.0.1, server: 127.0.0.1, request: "POST /api/v1/carresult/ HTTP/1.1", upstream: "uwsgi://192.168.1.2:5002", host: "139.224.27.127:5001"

    原因:端口未开放 5002

    解决:开放5002端口即可

  • 相关阅读:
    LeetCode 295. Find Median from Data Stream (堆)
    LeetCode 292. Nim Game(博弈论)
    《JavaScript 模式》读书笔记(4)— 函数2
    《JavaScript 模式》读书笔记(4)— 函数1
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数3
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数2
    《JavaScript 模式》读书笔记(3)— 字面量和构造函数1
    《JavaScript 模式》读书笔记(2)— 基本技巧3
    《JavaScript 模式》读书笔记(2)— 基本技巧2
    《JavaScript 模式》读书笔记(2)— 基本技巧1
  • 原文地址:https://www.cnblogs.com/pythonwl/p/14314796.html
Copyright © 2011-2022 走看看