2019年11月27日星期三

pip install openpyxl问题解决

使用python2安装openpyxl时一直遇到一个问题:
Collecting openpyxl
  Using cached https://files.pythonhosted.org/packages/f4/5f/fb8706fba43b46716e252fdd3ffdfe801a63a0f4663b80b6f3421d85ab70/openpyxl-3.0.2.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/tmp/pip-build-qUECOe/openpyxl/setup.py", line 28, in <module>
        from importlib.util import module_from_spec, spec_from_file_location
    ImportError: No module named util

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-qUECOe/openpyxl/

发现装3.x版本都不行,pip install pip install openpyxl==2.6.4,换成旧版本之后,解决问题。

2019年11月20日星期三

修改brew update镜像源

替换brew.git:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

替换homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

SSL connection error: SSL_CTX_set_tmp_dh failed错误

使用conda list查看到openssl的版本是1.1.1d,将openssl降级,问题解决:
conda install openssl=1.0.2r
参考https://github.com/ContinuumIO/anaconda-issues/issues/10646

conda install遇到PackagesNotFoundError

conda install pydub,无法安装,PackagesNotFoundError: The following packages are not available from current channels

解决:conda install -c conda-forge pydub

2019年11月8日星期五

2019年11月7日星期四

记录一个logback奇怪的问题

我在logback中设置了两个appender,一个是console,另一个是file。root的loglevel是INFO,由于INFO级别的日志很多,所以我想将console中log的级别提升为WARN(docker中处理特别多的console log会极大拖慢机器速度),所以在console log的配置中增加了:
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
      <level>WARN</level>
    </filter>

设置console的loglever变成了WARN,只有WANR及以上的日志才回输出到console。文件日志还是INFO及以上的日志。加完后有一个新的问题,日志中行号都变成了问号。

解决:在AsyncAppender的配置项里增加 <includeCallerData>true</includeCallerData> 即可。


2019年11月1日星期五

python2 flask get argument处理url编码

import urllib
urllib.unquote(arg.encode('utf-8'))

python2 flask返回结果编码问题

f.jsonify默认是unicode编码,不会出现什么问题,如果想返回改为utf-8编码的话,需要同时设置:
app.config['JSON_AS_ASCII'] = False
app.config['JSONIFY_MIMETYPE'] = 'application/json;charset=utf-8'

不仅需要设置了JSON_AS_ASCII,返回的头也要设置成utf-8。