Pycharm问题集

[TOC]


问题集

Pycharm

  1. import 本地模块时需要选择 make directory as ->source root 才可以正常导入模块中的函数和类,提供自动提示功能

  2. unittest 缺少win32api出错,添加 pywin32 包即可

    unittest 提示 _jb_trialtest_runner.py: error: unrecognized arguments: --reporter=teamcity 是因为pycharmteamcity-message不兼容,使用默认unittest框架即可。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import unittest
    from teamcity import is_running_under_teamcity
    from teamcity.unittestpy import TeamcityTestRunner

    class Test(unittest.TestCase):
    ...

    if __name__ == '__main__':
    if is_running_under_teamcity():
    runner = TeamcityTestRunner()
    else:
    runner = unittest.TextTestRunner()
    unittest.main(testRunner=runner)
  3. pycharm 对于unittest会根据光标所在模块测试,最好光标点在 main函数或者全选

  4. Matplotlib输出中文显示问题:

    方法一:修改配置文件matplotlibrc

    matplotlib的安装路径:Python36\site-packages\matplotlib\mpl-data\matplotlibrc,文件中有如下内容:

    1
    2
    #font.family    : sans-serif
    #font.sans-serif : Bitstream Vera Sans, Lucida Grande, Verdana, Geneva, Lucid, Anal, Helvetica, Avant Ga

    方法二:动态设置参数(推荐方式)

    python脚本中动态设置matplotlibrc,这样就避免了更改配置文件的麻烦,方便灵活,例如:

    1
    2
    from pylab import mpl 
    mpl.rcParams[‘font.sans-serif] = [‘SimHei’]

    由于更改了字体导致显示不出负号,将配署文件中axes.unicode minus : True修改为Falsest就可以了,当然这而可以用代码来完成。

    1
    2
    3
    4
    from pylab import mpl

    mpl.rcParams['font.sans-serif'] = ['FangSong'] # 指定默认字体
    mpl.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题

    方法三:使用字体管理器

    python有个字体管理器,font_manager

    1
    2
    myfont = matplotlib.font_manager.FontProperties(fname='C:/Windows/Fonts/msyh.ttf')  
    mpl.rcParams['axes.unicode_minus'] = False

这是别人整理的Windows的字体对应名称,根据需要自行更换!

黑体 SimHei
微软雅黑 Microsoft YaHei
微软正黑体 Microsoft JhengHei
新宋体 NSimSun
新细明体 PMingLiU
细明体 MingLiU
标楷体 DFKai-SB
仿宋 FangSong
楷体 KaiTi
仿宋_GB2312 FangSong_GB2312
楷体_GB2312 KaiTi_GB2312