python版本3.12.0
项目的版本依赖
问题1
解决方案
sudo vim /etc/profile
export MYSQLCLIENT_CFLAGS="-I/usr/include/mysql"
export MYSQLCLIENT_LDFLAGS="-L/usr/lib64/mysql"
Esc退出编辑模式
:wq退出并且保存
问题二 说是找不到 mysql.h头文件
CentOS 'mysql/mysql.h': No such file or directory
问题概述:起因是为了方便直接用宝塔安装了php和mysql,然后项目需要开启pdo_mysql,却发现没有这个拓展包,于是手动去下载该拓展包进行编译。但是执行make命令时出现了问题,报错如下:
参考博客:https://www.cnblogs.com/inkqx/p/13566250.html
应该是找不到mysql.h,但是系统已经装了mysql,应该是有包含该文件的,所以先看下该文件是否存在。
- 执行find命令查找该文件
find / -name mysql.h
得到该文件路径/www/server/mysql/include/mysql.h
ps:这是宝塔安装的路径,因此会与默认路径不一致- 建立软连接,执行
ln -s /www/server/mysql/include/* /usr/local/include/
注意建立软连接一定要在宝塔面板的终端中执行
说明:这里的 /www/server/mysql/include/* ,是你的mysql路径/include/*
,而/usr/local/include/是原默认路径,可以不更改
寻找虚拟环境:find / -name activate
进入虚拟环境 source /www/wwwroot/www.atlongwen.top/DNA/venv/Scripts/activate
source /www/server/pyporject_evn/versions/3.12.0/lib/python3.12/venv/scripts/common/activate
pip install -r /www/wwwroot/www.atlongwen.top/DNA/requirements.txt
如果还是不可以请安装以下依赖 ,再执行以上的解决方案
sudo yum install pkgconfig
sudo yum install mysql-devel
sudo yum install mysql-connector-c
pip install mysqlclient 重要
问题 django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
解决步骤:
一,安装mysql驱动,打开cmd.
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ pymysql
二,在django项目下的setting.py下进行配置。
Database
https://docs.djangoproject.com/en/4.0/ref/settings/#databases
DATABASES = {
'default':
{
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'jljupcs', # 数据库名称
'HOST': '127.0.0.1', # 数据库地址,本机 ip 地址 127.0.0.1
'PORT': 3306, # 端口
'USER': 'root', # 数据库用户名
'PASSWORD': '', # 数据库密码
}
}
三,在与 settings.py 同级目录下的 init.py 中引入模块和进行配置
import pymysql
pymysql.install_as_MySQLdb()
直接打开终端执行迁移就可以了 ,不用进入虚拟环境
生成迁移文件 python manage.py makemigrations
执行py迁移 python manage.py migrate
迁移完数据库直接 启动就可以了
关于uniapp上传到django服务器后台 图片文件上传不上去 权限问题
增加权限
增加权限 tmp文件夹
关于阿里云使用oss长期访问凭证
如何为Python SDK配置访问凭证 - 对象存储 OSS - 阿里云
centos中宝塔面板中部署的django项目无法获取系统环境变量
获取环境变量中的OSS访问凭证
oss_access_key_id = os.getenv('OSS_ACCESS_KEY_ID')
oss_access_key_secret = os.getenv('OSS_ACCESS_KEY_SECRET')
print("OSS_ACCESS_KEY_ID:", oss_access_key_id)
print("OSS_ACCESS_KEY_SECRET:", oss_access_key_secret)
获取不到环境变量
和阿里云的技术人员探讨了半天
最终解决方案 例子
`auth = oss2.Auth(access_key_id, access_key_secret)``bucket = oss2.Bucket(auth, 'oss-cn-hangzhou.aliyuncs.com', 'examplebucket')`