74. Ubuntu Server安装
Ubuntu Server安装教程
Ubuntu Server安装教程
1 | vector():创建一个空vector |
1 | iterator erase(iterator it):删除向量中迭代器指向元素 |
1 | map<int, string> m |
1 | m.insert(pair<int,string>(102,"aclive")); |
1 | for (map<int, string>::iterator iter = m.begin(); iter != m.end(); iter++) { |
m.size()1 | queue<int> q; |
1 | q.push(1); |
1 | q.pop(); |
1 | q.front(); |
1 | q.back(); |
1 | q.empty(); |
1 | q.size(); |
1 | stack<int> s; |
1 | s.push(1); |
1 | s.pop(); |
1 | s.top(); |
1 | s.empty(); |
1 | s.size(); |
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
例:
1 | >>> x = 7 |
将lambda函数赋值给一个变量,通过这个变量间接调用该lambda函数。
例如,执行语句add=lambda x, y: x+y,定义了加法函数lambda x, y: x+y,并将其赋值给变量add,这样变量add便成为具有加法功能的函数。例如,执行add(1,2),输出为3。
将lambda函数赋值给其他函数,从而将其他函数用该lambda函数替换。
例如,为了把标准库time中的函数sleep的功能屏蔽(Mock),我们可以在程序初始化时调用:time.sleep=lambda x:None。这样,在后续代码中调用time库的sleep函数将不会执行原有的功能。例如,执行time.sleep(3)时,程序不会休眠3秒钟,而是什么都不做。
将lambda函数作为其他函数的返回值,返回给调用者。
函数的返回值也可以是函数。例如return lambda x, y: x+y返回一个加法函数。这时,lambda函数实际上是定义在某个函数内部的函数,称之为嵌套函数,或者内部函数。对应的,将包含嵌套函数的函数称之为外部函数。内部函数能够访问外部函数的局部变量,这个特性是闭包(Closure)编程的基础,在这里我们不展开。
将lambda函数作为参数传递给其他函数。
部分Python内置函数接收函数作为参数。典型的此类内置函数有这些。
filter函数。此时lambda函数用于指定过滤列表元素的条件。例如filter(lambda x: x % 3 == 0, [1, 2, 3])指定将列表[1,2,3]中能够被3整除的元素过滤出来,其结果是[3]。
sorted函数。此时lambda函数用于指定对列表中所有元素进行排序的准则。例如sorted([1, 2, 3, 4, 5, 6, 7, 8, 9], key=lambda x: abs(5-x))将列表[1, 2, 3, 4, 5, 6, 7, 8, 9]按照元素与5距离从小到大进行排序,其结果是[5, 4, 6, 3, 7, 2, 8, 1, 9]。
map函数。此时lambda函数用于指定对列表中每一个元素的共同操作。例如map(lambda x: x+1, [1, 2,3])将列表[1, 2, 3]中的元素分别加1,其结果[2, 3, 4]。
reduce函数。此时lambda函数用于指定列表中两两相邻元素的结合条件。例如reduce(lambda a, b: ‘{}, {}’.format(a, b), [1, 2, 3, 4, 5, 6, 7, 8, 9])将列表 [1, 2, 3, 4, 5, 6, 7, 8, 9]中的元素从左往右两两以逗号分隔的字符的形式依次结合起来,其结果是’1, 2, 3, 4, 5, 6, 7, 8, 9’。
购买一个服务器,如在:阿里云、腾讯云上买等(阿里云有学生版);
将服务器添加安全组
更多 - 网络和安全组 - 安全组配置 - ``,如图所示:
配置规则:
添加安全组规则:

xshell 连接cmd 连接ssh demo@123.123.123.123demo 为用户名, 123.123.123.123为公网地址1 | apt update |
adduser lqrroot 权限: usermod -aG sudo lqrsu lqrpip、dev:sudo apt install python3-dev python3-pippip3 的版本: pip3 --versionpip、pip3 设置镜像: 1 | pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple |
pipenv: sudo -H pip3 install pipenvpip3 install pipenv,也要用上面的命令装一次1 | sudo apt update |
1 | sudo ufw allow 22 |
查看防火墙状态:sudo ufw status
将仓库的目录下载到本地,实例以 MMCs为例,即:lqr 目录下有 MMCs 文件夹
进入文件夹,并创建虚拟环境
1 | cd MMCs |
创建 .env: nano .env (可以直接复制)
1 | FLASK_ENV=production |
设置pipenv的镜像:
cat Pipfile1 | [[source]] |
url = "https://pypi.org/simple" 替换成: url = "https://pypi.tuna.tsinghua.edu.cn/simple/" (这里的网址,可以替换成其他镜像)进入shell,并安装 --dev、uwsgi(在 MMCs 文件夹下进行):
1 | pipenv shell |
接着执行以下命令
1 | flask init // 如果已经初始化过,这里改成 flask init --drop |
如果出现类似下面的内容,说明配置的应该是正确的
1 | * Environment: development |
然后,按 CTRL+C 结束,进行下一步
使用 Gunicorn 运行程序
pipenv install gunicornsudo ufw allow 8000sudo ufw enablegunicorn --workers=4 wsgi:appCTRL+C 结束,进行下一步键入:exit,以退出 MMCs
使用 nginx
sudo apt install nginx公网ip (例如本案例中:123.123.123.123),可以看到 welcome nginx 的界面sudo rm /etc/nginx/sites-enabled/default1 | sudo nano /etc/nginx/sites-enabled/MMCs |
1 | server { |
sudo nginx -t,如果有下面的内容说明正确:1 | nginx: the configuration file /etc/nginx/nginx.conf syntax is ok |
sudo service nginx restartgunicorn -w 4 wsgi:app使用 Supervisor 管理进程
sudo apt install supervisor1 | sudo nano /etc/supervisor/conf.d/MMCs.conf |
1 | [program:MMCs] |
1 | environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8' |
1 | [inet_http_server] |
supervisor 服务: sudo service supervisor restartsudo supervisorctl安装 unzip:sudo apt install unzip
将zip解压到 temp 文件夹中
1 | mkdir temp |
如果pip3 出现如下错误
1 | Traceback (most recent call last): |
那么,修改/usr/bin/pip3:
1 | sudo nano /usr/bin/pip3 |
from pip import main 修改为 from pip._internal import main ,即可如果使用 pipenv install --dev 安装依赖,出现安装超时:ReadTimeoutError,那么将 .env 的文件添加 PIPENV_TIMEOUT=3600
如果想重新初始化或者更改了某些文件,执行下面的命令
1 | flask init --drop |
nginx上传默认1m,因此,需要更改一下:
文件下载不了:将diff更改为 true,见下图:
[错误日志]
1 | [2019-08-20 11:24:30,814] - MMCs - 60.2.111.59 requested http://47.98.142.112/admin/score/download/teacher |
matplotlib多轴绘制
安装win10后安装ubuntu及其美化
在局域网分享文件,但如果你的电脑上安装了python(没有的话也可以自己安装一个,占用资源很小),我们可以使用它自带的http模块运行一个http服务,这样局域网内的设备都能通过浏览器去访问和下载文件了。由于走的是局域网路线,所以传输速度基本上取决于你的路由器或交换机的速度。
| 组装机主板 | 品牌电脑 | ||
|---|---|---|---|
| 主板品牌 | 启动按键 | 电脑品牌 | 启动按键 |
| 华硕主板 | F8 | 联想电脑 | F12 |
| 技嘉主板 | F12 | 宏基电脑 | F12 |
| 微星主板 | F11 | 华硕电脑 | ESC或F8 |
| 映泰主板 | F9 | 惠普电脑 | F9或F12 |
| 梅捷主板 | ESC或F12 | 联想Thinkpad | F12 |
| 七彩虹主板 | ESC或F11 | 戴尔电脑 | F12或ESC |
| 华擎主板 | F11 | 神舟电脑 | F12 |
| 斯巴达克主板 | ESC | 东芝电脑 | F12 |
| 昂达主板 | F11 | 三星电脑 | F12或F2 |
| 双敏主板 | ESC | IBM电脑 | F12 |
| 翔升主板 | F10 | 富士通电脑 | F12 |
| 精英主板 | ESC或F11 | 海尔电脑 | F12 |
| 冠盟主板 | F11或F12 | 方正电脑 | F12 |
| 富士康主板 | ESC或F12 | 清华同方电脑 | F12 |
| 顶星主板 | F11或F12 | 微星电脑 | F11 |
| 铭瑄主板 | ESC或F11 | 明基电脑 | F9或F8 |
| 盈通主板 | F8 | 技嘉电脑 | F12 |
| 捷波主板 | ESC | Gateway电脑 | F12 |
| Intel主板 | F12 | eMachines电脑 | F12 |
| 杰微主板 | ESC或F8 | 索尼电脑 | ESC |
| 致铭主板 | F12 | 苹果电脑 | 长按“option”键 |
| 磐英主板 | ESC | ||
| 磐正主板 | ESC | ||
| 冠铭主板 | F9 | ||
| 注意:其它机型请尝试或参考以上品牌常用启动热键 |
另外您还可以在BIOS设置中,将U盘设置为第一启动项启动U盘,具体方法可以百度。
第二步:找到要启动的U盘,并辨别UEFI和Legeacy方式
1 | typedef char VertexType; |
1 | MGraph G; |
lowcost 数组中;adjvex 用来存储各个顶点的值,用来看是哪个点与接下来的哪个点相连的;lowcost 存储各个顶点是否为生成树顶点;lowcost ,找到与顶点 $V_0$最短的边,并将对应的顶点,添加到生成树中;O,更新 lowcost 的值(更新其他顶点与 O 的更短的距离);lowcost 全部为0。1 | /** |