数据库报错: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.
解决:
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服务,开启后会获得授权码。
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端口即可