解决Centos网卡无法激活
原因:NM托管未开启。
查看托管状态:
nmcli n
--查看托管状态
--显示为disable则为不可用
--显示为enable则表示可用
开启托管:
nmcli n on --开启托管
fastapi-login增加退出登录功能
使用fastapi开发新博客,登录使用的是fastapi-login插件,但是这个插件只有登录没有退出登录的功能,所以有了这篇文章。
实现方式很简单就是删掉cookie中的用户信息。
vi /opt/python/lib/python3.11/site-packages/fastapi_login/fastapi_login.py
路径根据自己的python路径修改。
在该文件的305行,也就是set_cookie函数之后添加如下代码:
def remove_cookie(self, response: Response) -> None:
response.set_cookie(key=self.cookie_name, value="", httponly=True)
然后在网站的路由文件中添加:
@app.get('/logout/')
async def loginout(response: Response):
manager.remove_cookie(response)
return RedirectResponse(app.url_path_for("index"))
这样访问logout路由就会取消用户登录并返回网站首页了。
No module named "Crypto" 解决方案
某些脚本需要用到Crypto库,但当pip install Crypto后仍提示:No module named 'Crypto',解决方案如下:
pip uninstall crypto pycryptodome
pip install pycryptodome
pycrypto和crypto是同一个库,crypto在 python 中又被称为pycrypto,它是一个第三方库,但是已经停止更新了,所以不建议大家安装。pycryptodome是crypto的延伸版本,用法和crypto是一模一样的,可以完全替代crypto。
如果上述方法仍不能解决问题,可以找到 python 下面的\Lib\site-packages,手动将crypto改为Crypto。
python3报错:No module named '_sqlite3'
1、编译安装sqlite-amalgamation
wget http://www.sqlite.org/sqlite-amalgamation-3.6.20.tar.gz
tar -zxvf sqlite-amalgamation-3.6.20.tar.gz
cd sqlite-3.5.6
./configure -prefix=/usr/local/lib/sqlite3
make && make install
2、编辑Python文件
修改Python解压目录里的setup.py 文件:在下面这段的下一行添加’/usr/local/lib/sqlite3/ include ’,
sqlite_inc_paths = [ '/usr/include',
'/usr/include/sqlite',
'/usr/include/sqlite3',
'/usr/local/include',
'/usr/local/include/sqlite',
'/usr/local/include/sqlite3',
'/usr/local/lib/sqlite3/include',
]
3、重新编译安装Python
./configure --prefix=/usr/local/python --with-openssl=/usr/local/openssl
make && make install
ln -fs /usr/local/python/bin/python3.7 /usr/bin/python
ln -fs /usr/local/python/bin/pip3 /usr/bin/pip
4、测试
# python
>>> import sqlite3
解决python3.9报错:No module named ‘_ctypes‘
解决办法如下:
安装libffi-devel:
yum install libffi-devel
然后重新去编译和安装python3,重新用pip3 安装就没问题了。
报错:RuntimeError: Could not find a...
导致这个错误的原因是因为pip的版本太低了,用如下命令可以升级:
pip3 install --upgrade pip
重新尝试安装,成功。