IT记录

日常学习、工作的点滴记录


  • 首页

  • categories

  • archive

  • tags

  • 搜索

Jupyterlab 错误:attributeerror: ‘extensionmanager‘ object has no attribute ‘_extensions‘的解决

发表于 2021-10-19   |   分类于 Jupyterlab   |   暂无评论

Jupyterlab升级3.2版本后,启动提示错误:attributeerror: ‘extensionmanager‘ object has no attribute ‘_extensions‘。

显示nbclassic错误,可以通过指定安装nbclassic的版本解决。

pip install nbclassic==0.2.8

默认安装版本为0.2.6.

Jupyterlab下execute-time安装

发表于 2021-10-19   |   分类于 Jupyterlab   |   暂无评论

原先Jupyterlab下查看单元运行时间,是通过ExtensionManager安装execute-time插件。随着Jupyterlab版本升级,原先的插件提示无法安装。

Jupyterlab3.0版本后,execute-time插件需要通过pip安装:

pip install jupyterlab_execute_time

安装完成后,不需要设置插件中的recordingtime,但依然需要通过Settings->Advanced Settings Editor->Notebook: {"recordTiming": true},设置notebook。

Python下Glob结合os.path获取文件名

发表于 2021-10-18   |   分类于 Python   |   暂无评论
import json
import glob
import os,sys

list1 = []

fl1 = glob.glob('file/210924/*.pdf')
for x in fl1:
    s = os.path.basename(x) #获得文件名
    print(s)
    s1 = os.path.abspath(x) #获得完整带路径的文件名
    print(s1)

pymysql中将日期转换为字符串

发表于 2021-10-18   |   分类于 Python , 数据库   |   暂无评论

SQL语句中使用DATE_FORMAT函数直接转换

sql = f'SELECT DATE_FORMAT(a.date,"%Y-%m-%d") as date1 FROM places_result AS a'

这样得出的数值就为字符串。

使用python的strftime函数转换

import datetime
sql = f'SELECT a.date FROM places_result AS a'
cursor.execute(sql)
results = cursor.fetchall()
for result in results:
    s = result[0].strftime('%Y-%m-%d')
    print(type(s))

strptime函数则与strftime相反,是将字符串转换为时间类型

Ubuntu20.04下安装配置uWsgi部署Flask

发表于 2021-10-16   |   分类于 Python   |   暂无评论

安装uWsgi

默认情况下,使用pip安装uWsgi会出现错误,需要首先安装python3-dev,如果安装python-dev会提示安装的是python2.7.

sudo apt install python3-dev
pip install uwsgi

配置、运行uWsgi

进入Flask项目根目录,下创建一个配置文件 myproject.ini:

[uwsgi]    
master = true    #启动主进程,来管理其他进程,其它的uwsgi进程都是这个master进程的子进程,如果kill这个master进程,相当于重启所有的uwsgi进程。                
http = :5000   #服务端口
socket = :5000  #用于和 nginx 进行数据交互的端口
chdir = /home/login_user/app/FlaskWeb  #项目目录
wsgi-file = /home/login_user/app/FlaskWeb/FlaskWeb.py  #flask项目运行文件
callable = app  #设置在收到请求时,uWSGI加载的模块中哪个变量将被调用,本次flask项目里为“app”。
buffer-size = 65536  #设置用于uwsgi包解析的内部缓存区大小。默认是4k。
processes = 4 #服务进程数
threads = 8 #线程数
enable-threads = true #
max-requests = 2000 #最大请求数
daemonize = flaskweb.log #使进程在后台运行,记录日志
lazy-apps=true #各个进程都创建自己的app
virtualenv = /home/login_user/app #虚拟环境目录

运行uWsgi

uwsgi --ini myproject.ini

注意事项

  1. callable中app 指的是 flask 项目启动程序中定义的 flask name 的名字,并非py文件的名字
  2. 安装运行时会提示“chdir(): No such file or directory”错误,删除掉配置文件中的注释即可。
  3. 运行中会提示找不到数据库,主要因为uwsgi启动多进程时,会启动一个主进程初始化所有的app(其中包括数据库连接),然后将所有app复制到其他进程中。这就导致所有进程全部共用一个MySQL的连接。添加lazy-apps=true解决。
  4. 如果本机使用nginx,使用socket,如果通过frp,则选择http。

设置uwsgi自启动服务

创建 uwsgi.service 文件

在/etc/systemd/system目录下创建文件:

[Unit]
Description=uWSGI
After=network.target
 
[Service]
User=user
WorkingDirectory=/your/path/summary
#Environment=FLASKR_SETTINGS=/your/path/summary/env.cfg
ExecStart=/usr/local/bin/uwsgi --ini //your/path/summary/uwsgi.ini
 
[Install]
WantedBy=multi-user.target

启动、停止、重启、查看服务

sudo systemctl start uwsgi.service
sudo systemctl stop uwsgi.service
sudo systemctl restart uwsgi.service

加入、关闭系统自启动

sudo systemctl daemon-reload
sudo systemctl enable uwsgi.service
sudo systemctl disable uwsgi.service
1...1011121314151617181920...23

一个高端大气上档次的网站

115 文章
5 分类
51 标签
GitHub 知乎 V2EX SF
© 2026 IT记录
Typecho
主题 - NexT.Pisces