Qeuroal's Blog

静幽正治

  1. 在桌面 gedit spyder.desktop

  2. 输入下面文本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [Desktop Entry]
    Encoding=UTF-8
    Name=Spyder
    Comment=The Smarter Way to manage dadabase
    Exec=/home/dgimo/anaconda3/bin/python "/home/dgimo/anaconda3/bin/spyder"
    Icon=/home/dgimo/anaconda3/share/icons/spyder3.png
    Categories=Development;Science;IDE;Qt;
    Type=Application
    Terminal=0
    StartupNotify=true
    MimeType=text/x-python;
    X-AppStream-Ignore=True
  3. 将该文件移动到 /usr/share/applications

  4. 解决不能使用中文输入法的问题

    1. cd /usr/lib/x86_64-linux-gnu/qt5/plugins/platforminputcontexts 找到文件所在的文件夹
    2. ls 查看当前文件夹中的文件,其实这条可以省略
    3. sudo cp libfcitxplatforminputcontextplugin.so ~/anaconda3/plugins/platforminputcontexts 将其复制到anaconda插件相应的文件下
    4. 重启Spyder即可

string

  1. length() // 返回字符串的长度
  2. empty() // 判断是否为空
  3. push_back() // 恢复字符到结尾
  4. int compare(const string &s) const;//比较当前字符串和s的大小

更多点击这里

vector

  1. 初始化:
    1
    2
    3
    4
    5
    vector():创建一个空vector
    vector(int nSize):创建一个vector,元素个数为nSize
    vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
    vector(const vector&):复制构造函数
    vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中
  2. void push_back(const T& x):向量尾部增加一个元素X
  3. 删除
    1
    2
    3
    4
    iterator erase(iterator it):删除向量中迭代器指向元素
    iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
    void pop_back():删除向量中最后一个元素
    void clear():清空向量中所有元素
  4. int size() const:返回向量中元素的个数
  5. empty 判断vector是否为空

更多点击这里

map (键值对)

  1. 初始化:
    1
    map<int, string> m
  2. 添加
    1
    2
    3
    m.insert(pair<int,string>(102,"aclive"));
    m.insert(map<int,string>::value_type(321,"hai"));
    m[112]="April";//map中最简单最常用的插入添加!
  3. 遍历
    1
    2
    3
    4
    for (map<int, string>::iterator iter = m.begin(); iter != m.end(); iter++) {
    cout << iter->first << ", " << iter->second << " ";
    }
    cout << endl;
  4. 个数: m.size()
    更多点击这里

pair

  1. 初始化:
    1. pair<int, string> p;
    2. pair<int, string> p (1, 2);
    3. make_pair(1,2);
    4. pair<int, string> (1, 2) (C11)
  2. 操作
    1. p.first
    2. p.second

更多点击这里

queue

  1. 初始化
    1
    queue<int> q;
  2. 入队
    1
    q.push(1);
  3. 出队
    1
    q.pop();
  4. 访问队首元素
    1
    q.front();
  5. 访问队尾元素
    1
    q.back();
  6. 判断队列空
    1
    q.empty();
  7. 元素的个数
    1
    q.size();
    更多点击这里

stack

  1. 初始化
    1
    stack<int> s;
  2. 入栈
    1
    s.push(1);
  3. 出栈
    1
    s.pop();
  4. 访问栈顶
    1
    s.top();
  5. 判断栈空
    1
    s.empty();
  6. 元素的个数
    1
    s.size();
    更多点击这里

axis

  • 轴用来为超过一维的数组定义的属性,二维数据拥有两个轴:第0轴沿着行的垂直往下,第1轴沿着列的方向水平延伸。
  • 官方对于0和1的解释是轴,也就是坐标轴。而坐标轴是有方向的,所以千万不要用行和列的思维去想axis,因为行和列是没有方向的,这样想会在遇到不同的例子时感到困惑。
  • axis的重点在于方向,而不是行和列。具体到各种用法而言也是如此。当axis=1时,如果是求平均,那么是从左到右横向求平均;如果是拼接,那么也是左右横向拼接;如果是drop,那么也是横向发生变化,体现为列的减少。
  • 当考虑了方向,即axis=1为横向,axis=0为纵向,而不是行和列,那么所有的例子就都统一了。

eval

  • eval() 函数用来执行一个字符串表达式,并返回表达式的值。

    例:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    >>> x = 7
    >>> eval( '3 * x' )
    21
    >>> eval('pow(2,2)')
    4
    >>> eval('2 + 2')
    4
    >>> n=81
    >>> eval("n + 4")
    85

lambda

  • 将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’。

  • 购买服务器

  1. 购买一个服务器,如在:阿里云、腾讯云上买等(阿里云有学生版);

  2. 将服务器添加安全组

    1. 进入实例列表,点击 更多 - 网络和安全组 - 安全组配置 - ``,如图所示:
    2. 进入配置规则
    3. 选择 添加安全组规则
    4. 将所指的地方,一模一样的填入到你的规则下
  • 连接服务器

  1. 使用 xshell 连接
    1. 具体使用,百度
  2. 使用 cmd 连接
    1. 连接实例: ssh demo@123.123.123.123
    2. 其中:demo 为用户名, 123.123.123.123为公网地址
  • 服务器配置

    根据以上方法可以连接上 ubuntu

    该配置以 lqr用户名;以 MMCs实战项目//为注释

  1. 更新系统可安装的包文件,并对课升级的包,进行升级:

    1
    2
    apt update
    apt upgrade
  2. 创建用户:adduser lqr

  3. 为用户赋予 root 权限: usermod -aG sudo lqr

  4. 切换用户: su lqr

  5. python3 安装 pip、devsudo apt install python3-dev python3-pip

  6. 查看 pip3 的版本: pip3 --version

  7. pip、pip3 设置镜像:

    1
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  8. 全局安装 pipenvsudo -H pip3 install pipenv

    【注意】:一定要全局安装,哪怕是使用 pip3 install pipenv,也要用上面的命令装一次

  9. 重新更新一遍:

    1
    2
    sudo apt update
    sudo apt upgrade
  10. 设置防火墙,并更新规则:

    1
    2
    3
    4
    sudo ufw allow 22
    sudo ufw allow 80
    sudo ufw allow 443
    sudo ufw enable // 更新规则
  11. 查看防火墙状态:sudo ufw status

  12. 将仓库的目录下载到本地,实例以 MMCs为例,即:lqr 目录下有 MMCs 文件夹

  13. 进入文件夹,并创建虚拟环境

    1
    2
    cd MMCs
    pipenv install
  14. 创建 .envnano .env (可以直接复制)

    1
    2
    FLASK_ENV=production
    FALSK_CONFIG=production
  15. 设置pipenv的镜像:

    1. 查看 Pipfile : cat Pipfile
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      [[source]]
      url = "https://pypi.org/simple"
      verify_ssl = true
      name = "pypi"

      [packages]
      flask = "*"
      requests = "*"
      wtforms = "*"
      flask-sqlalchemy = "*"
      cymysql = "*"
      flask-login = "*"

      [dev-packages]

      [requires]
      python_version = "3.7"
    2. 将第2行:url = "https://pypi.org/simple" 替换成: url = "https://pypi.tuna.tsinghua.edu.cn/simple/" (这里的网址,可以替换成其他镜像)
  16. 进入shell,并安装 --dev、uwsgi(在 MMCs 文件夹下进行):

    1
    2
    3
    pipenv shell
    pipenv install --dev
    pipenv install uwsgi
  17. 接着执行以下命令

    1
    2
    3
    4
    flask init      // 如果已经初始化过,这里改成 flask init --drop
    flask forge
    flask translate compile
    flask run

    如果出现类似下面的内容,说明配置的应该是正确的

    1
    2
    3
    4
    5
    * Environment: development
    * Debug mode:on
    * Debugger is active!
    * Debugger PIN: 202-005-064
    * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

    然后,按 CTRL+C 结束,进行下一步

  18. 使用 Gunicorn 运行程序

    1. 安装 pipenv install gunicorn
    2. 设置防火墙: sudo ufw allow 8000
    3. 更新防火墙规则: sudo ufw enable
    4. 运行程序: gunicorn --workers=4 wsgi:app
    5. CTRL+C 结束,进行下一步
  19. 键入:exit,以退出 MMCs

  20. 使用 nginx

    1. 安装 nginx : sudo apt install nginx
    2. 可以访问你的 公网ip (例如本案例中:123.123.123.123),可以看到 welcome nginx 的界面
    3. 删除 default : sudo rm /etc/nginx/sites-enabled/default
    4. 创建同项目文件夹名称的文件:
      1
      sudo nano /etc/nginx/sites-enabled/MMCs
      添加以下内容:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      server {
      listen 80 default_server;
      server_name _;
      access_log /var/log/nginx/access.log;
      error_log /var/log/nginx/error.log;

      location / {
      include uwsgi_params;
      uwsgi_pass 127.0.0.1:3031;
      }

      location /static {
      alias /home/lqr/MMCs/MMCs/static/;
      expires 7d;
      }
      }
    5. 测试nginx语法的正确性:sudo nginx -t,如果有下面的内容说明正确:
      1
      2
      nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
      nginx: configuration file /etc/nginx/nginx.conf test is successful
    6. 重启 nginxsudo service nginx restart
    7. 设置 nginx的转发目标地址: gunicorn -w 4 wsgi:app
  21. 使用 Supervisor 管理进程

    1. 安装:sudo apt install supervisor
    2. 创建 MMCs.conf文件:
      1
      sudo nano /etc/supervisor/conf.d/MMCs.conf
      写入以下配置(自己按照情况改变):
      1
      2
      3
      4
      5
      6
      7
      8
      [program:MMCs]
      command=pipenv run uwsgi --socket 127.0.0.1:3031 --wsgi-file wsgi.py --callable app --processes 4 --threads 2 --stats 127.0.0.1:9191
      directory=/home/lqr/MMCs
      user=lqr
      autostart=true
      autorestart=true
      stopasgroup=true
      killasgroup=true
    3. 配置 supervisord.conf
      1. 在 [supervisord] 节下添加下面这行定义
        1
        environment=LC_ALL='en_US.UTF-8',LANG='en_US.UTF-8'
      2. 在末尾添加
        1
        2
        3
        4
        [inet_http_server]
        port=*:9001
        username=lqr
        password=lqr
      3. 重启 supervisor 服务: sudo service supervisor restart
      4. 查看状态和进行相关操作: sudo supervisorctl
  • 拓展命令

  1. 安装 unzipsudo apt install unzip
  2. 将zip解压到 temp 文件夹中
    1
    2
    mkdir temp
    unzip -d temp temp.zip

    【注意】:命令需要在当前文件夹中

  3. 如果pip3 出现如下错误
    1
    2
    3
    4
    Traceback (most recent call last):
    File "/usr/bin/pip", line 9, in <module>
    from pip import main
    ImportError: cannot import name 'main'
    那么,修改/usr/bin/pip3
    1
    sudo nano /usr/bin/pip3

    from pip import main 修改为 from pip._internal import main ,即可

  4. 如果使用 pipenv install --dev 安装依赖,出现安装超时:ReadTimeoutError,那么将 .env 的文件添加 PIPENV_TIMEOUT=3600
  5. 如果想重新初始化或者更改了某些文件,执行下面的命令
    1
    2
    3
    4
    flask init --drop
    flask forge
    flask translate compile
    flask run
  6. nginx上传默认1m,因此,需要更改一下:
    1. 打开nginx配置文件 nginx.conf, 路径一般是:/etc/nginx/nginx.conf
    2. 在http{}段中加入 client_max_body_size 20m; 20m为允许最大上传的大小
    3. 保存后重启nginx,问题解决。
  7. 文件下载不了:将diff更改为 true,见下图:

    [错误日志]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    [2019-08-20 11:24:30,814] - MMCs - 60.2.111.59 requested http://47.98.142.112/admin/score/download/teacher
    ERROR in app: Exception on /admin/score/download/teacher [GET]
    Traceback (most recent call last):
    File "/home/lqr/.local/share/virtualenvs/MMCs-SswGTqqS/lib/python3.6/site-packages/flask/app.py", line 2446, in wsgi_app
    response = self.full_dispatch_request()
    File "/home/lqr/.local/share/virtualenvs/MMCs-SswGTqqS/lib/python3.6/site-packages/flask/app.py", line 1951, in full_dispatch_request
    rv = self.handle_user_exception(e)
    File "/home/lqr/.local/share/virtualenvs/MMCs-SswGTqqS/lib/python3.6/site-packages/flask/app.py", line 1820, in handle_user_exception
    reraise(exc_type, exc_value, tb)
    File "/home/lqr/.local/share/virtualenvs/MMCs-SswGTqqS/lib/python3.6/site-packages/flask/_compat.py", line 39, in reraise
    raise value
    File "/home/lqr/.local/share/virtualenvs/MMCs-SswGTqqS/lib/python3.6/site-packages/flask/app.py", line 1949, in full_dispatch_request
    rv = self.dispatch_request()
    File "/home/lqr/.local/share/virtualenvs/MMCs-SswGTqqS/lib/python3.6/site-packages/flask/app.py", line 1935, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
    File "/home/lqr/.local/share/virtualenvs/MMCs-SswGTqqS/lib/python3.6/site-packages/flask_login/utils.py", line 299, in decorated_view
    return func(*args, **kwargs)
    File "./MMCs/blueprints/admin.py", line 286, in download_teacher
    zfile = gen_teacher_result(com.id)
    File "./MMCs/downloader.py", line 46, in gen_teacher_result
    zip2here(file, zfile)
    File "./MMCs/utils/zip.py", line 22, in zip2here
    z.write(input_path, file)
    File "/usr/lib/python3.6/zipfile.py", line 1617, in write
    zinfo = ZipInfo.from_file(filename, arcname)
    File "/usr/lib/python3.6/zipfile.py", line 507, in from_file
    st = os.stat(filename)
    FileNotFoundError: [Errno 2] No such file or directory: 'h'

在局域网分享文件,但如果你的电脑上安装了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方式

笔记本

组装机

台式机

0%