python基础-linux下ipython

本文介绍了Python语言的由来、应用领域及优缺点,强调了Python在国内的就业前景。在Python的安装部分,详细讲解了Windows和Linux环境下Python的安装步骤,特别强调了Linux下安装IPython以获得Tab键自动补全功能的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

>1、为什么学习Python

>1.1、Python语言开发者
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。

>1.2、Python语言简介

Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内置电池(batteries included)”。用Python开发,许多功能不必从零编写,直接使用现成的即可。

除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。当然,如果你开发的代码通过很好的封装,也可以作为第三方库给别人使用。

许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。

龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。

那Python适合开发哪些类型的应用呢?

首选、网络应用,包括网站、后台服务等等;

其次、许多日常需要的小工具,包括系统管理员需要的脚本任务等等;

另外、就是把其他语言开发的程序再包装起来,方便使用。

最后说说Python的缺点。

任何编程语言都有缺点,Python也不例外。优点说过了,那Python有哪些缺点呢?

第一个缺点就是运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。

第二个缺点就是代码不能加密。如果要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

>1.3、Python的就业状况

目前国内python人才需求呈大规模上升,薪资水平也水涨船高。学python的人大多非科班出身。很多大学并没有开始此专业,因此就出现了大量的人才缺口,另外大家可以去智联,拉钩这样专业的招聘网站看看薪资和需求量,可以更加清晰和理智的判断python的就业形势,绝对是大幅度提升的,加上互联网的爆发,现在学习python语言的小伙伴们绝对是明智的选择。在这说很多小朋友儿时就想成为一个“黑客”高手,学习python觉得是一个你入门的一个不错的选择。

>2、Python的安装

>2.1、windows下的安装

到官网下载windows下面所需要Python2.7.14进行默认安装,安装过程全选,亦可完成path环境变量的自动设置。链接地址:https://www.python.org/downloads/windows/
如有不明白可参考我之前blog详细安装过程。

>2.2、linux下的安装

2.2.1、联网安装方式

linux系统下默认已安装了Python,CentOS 6.5默认安装Python2.6.6版本;CentOS 7默认安装Python2.7版本;我所使用CentOS 6.5版本。

[root@yuankepy ~]# python -V   #查看Python版本号
Python 2.6.6

linux系统可以直接输入

[root@yuankepy ~]# rpm -q python
python-2.6.6-66.el6_8.x86_64

可以直接输入Python的方式进行相关的编程,但是不能像linux系统一样;Tab键进行自动的补齐操作。所以需要ipython,即可实现Tab键的自动补齐功能。

pip install ipython     #该命令会报错

直接通过该命令安装会出现报错,因为Python2.6已经比较老;Python官网已经开始放弃对Python2的相关支持,转到Python3中进行支持。所以下载的是最新ipython的最新版本。下图是报错的最后部分截图
这里写图片描述

Python 2.6下正确的ipython安装命令

 pip install ipython==1.2.1

安装比较低的版本,安装成功后截图:

这里写图片描述

检查安装的结果

[root@yuankepy ~]# **pip list**
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
decorator (4.1.2)
iniparse (0.3.1)
**ipython (1.2.1)**
ipython-genutils (0.2.0)
MySQL-python (1.2.5)
[root@yuankepy ~]# **pip list|grep ipython**
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
DEPRECATION: The default format will switch to columns in the future. You can use --format=(legacy|columns) (or define a format=(legacy|columns) in your pip.conf under the [list] section) to disable this warning.
**ipython (1.2.1)
ipython-genutils (0.2.0)**

这里写图片描述

2.2.2、不能联网安装
不能联网的电脑,最好直接下载好ipython 1.2.1的源码。上传到服务器,进行安装。

tar xf ipython-1.2.1.tar.gz #解压
cd ipython-1.2.1  
setup.py install  #安装ipython

已完成安装。

matplotlib设置显示中文字体,当我使用%matplotlib inline import matplotlib import matplotlib.pyplot as plt import matplotlib.font_manager as font_manager # 设置显示中文 matplotlib.rcParams['font.sans-serif'] = ['FZSongYi-Z13S'] # 指定默认字体 matplotlib.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题 时出现中文部分依旧出现方块且提示/opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 31185 (\N{CJK UNIFIED IDEOGRAPH-79D1}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25216 (\N{CJK UNIFIED IDEOGRAPH-6280}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 20307 (\N{CJK UNIFIED IDEOGRAPH-4F53}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 32946 (\N{CJK UNIFIED IDEOGRAPH-80B2}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 26102 (\N{CJK UNIFIED IDEOGRAPH-65F6}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25919 (\N{CJK UNIFIED IDEOGRAPH-653F}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 32929 (\N{CJK UNIFIED IDEOGRAPH-80A1}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 31080 (\N{CJK UNIFIED IDEOGRAPH-7968}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 23089 (\N{CJK UNIFIED IDEOGRAPH-5A31}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 20048 (\N{CJK UNIFIED IDEOGRAPH-4E50}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 25945 (\N{CJK UNIFIED IDEOGRAPH-6559}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 23478 (\N{CJK UNIFIED IDEOGRAPH-5BB6}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 23621 (\N{CJK UNIFIED IDEOGRAPH-5C45}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 36130 (\N{CJK UNIFIED IDEOGRAPH-8D22}) missing from current font. fig.canvas.print_figure(bytes_io, **kw) /opt/conda/envs/python35-paddle120-env/lib/python3.10/site-packages/IPython/core/pylabtools.py:170: UserWarning: Glyph 32463 (\N{CJK UNIFIED IDEOGRAPH-7ECF}) missing from current font. fig.canvas.print_figure(bytes_io, **kw)问题怎么解决
最新发布
06-07
<think>我们正在解决的是Matplotlib在JupyterNotebook中使用%matplotlibinline时,设置中文字体后仍显示方块以及出现UserWarning提示字体缺失的问题。根据引用[1]、[2]、[3]、[4],我们可以归纳出以下关键点:1.乱码的主要原因是Matplotlib默认字体不支持中文(引用[4])。2.解决方法通常是设置中文字体(如黑体SimHei)并禁用Unicode减号(引用[2][3][4])。3.即使设置了SimHei,也可能出现负号显示问题,需要额外设置`axes.unicode_minus=False`(引用[3])。4.有时候设置字体后仍然出现方块,可能是因为设置的字体不在当前环境中,或者字体名称不正确(引用[1][2])。但是,在JupyterNotebook中使用%matplotlibinline时,情况可能略有不同。我们按照以下步骤进行:步骤1:确认问题-在JupyterNotebook中运行绘图代码,出现中文方块,并有类似“Glyphxxxxmissing”的警告(引用[2][4])。步骤2:设置全局中文字体-使用以下代码设置中文字体(如SimHei)并解决负号问题:plt.rcParams['font.sans-serif']=['SimHei']#设置黑体plt.rcParams['axes.unicode_minus']=False#解决负号显示问题步骤3:验证字体可用性-如果设置SimHei后仍然不行,可能是系统中没有这个字体,或者字体名称没有写对。可以通过以下方式查看可用字体:frommatplotlib.font_managerimportFontManagerimportmatplotlib.pyplotaspltfm=FontManager()[f.nameforfinfm.ttflist]#列出所有字体名称或者使用引用[1]的方法:importmatplotlibprint(matplotlib.matplotlib_fname())#找到matplotlibrc文件位置,然后查看字体目录步骤4:安装中文字体(如果缺失)-如果系统中没有中文字体,需要安装。例如在Windows上,可以安装微软雅黑(msyh.ttf)等。在Linux(例如Ubuntu)上,可能需要安装字体包:`sudoaptinstallfonts-wqy-microhei`(文泉驿微米黑)步骤5:明确指定字体路径(方法2,引用[4])-如果字体已经安装,但Matplotlib找不到,可以指定具体字体文件路径:frommatplotlib.font_managerimportFontPropertiesfont_path='字体文件路径'#例如:'C:\\Windows\\Fonts\\msyh.ttc'myfont=FontProperties(fname=font_path)#然后在绘图时单独设置字体plt.xlabel('X轴',fontproperties=myfont)#或者设置全局plt.rcParams['font.family']='sans-serif'plt.rcParams['font.sans-serif']=[myfont.get_name()]#使用字体名称步骤6:在JupyterNotebook中设置内嵌后端-有时需要设置正确的后端,虽然%matplotlibinline已经指定了内嵌,但可能涉及到交互问题(引用[2]提到设置TkAgg)。不过,在Notebook中通常不需要,但如果有问题可以尝试在开头指定:%matplotlibinlineimportmatplotlibmatplotlib.use('Agg')#或尝试其他非交互后端步骤7:清除缓存并重启内核-修改字体设置后,可能需要重启JupyterNotebook内核才能生效,因为Matplotlib会缓存字体。综合以上步骤,以下是一个在JupyterNotebook中设置中文字体的完整示例:```python#步骤1:设置内嵌绘图%matplotlibinline#步骤2:导入库importmatplotlib.pyplotaspltimportmatplotlib#步骤3:设置全局字体plt.rcParams['font.family']='sans-serif'#使用sans-serif字体族plt.rcParams['font.sans-serif']=['SimHei']#指定字体为黑体plt.rcParams['axes.unicode_minus']=False#解决负号显示问题#如果上述设置不行,尝试使用字体路径(步骤5)#以使用微软雅黑为例(Windows系统)#font_path='C:\\Windows\\Fonts\\msyh.ttc'#importmatplotlib.font_managerasfm#myfont=fm.FontProperties(fname=font_path)#plt.rcParams['font.family']=myfont.get_name()#步骤4:绘制图形测试plt.figure()x=[1,2,3,4,5]y=[2,3,5,7,11]plt.plot(x,y)plt.title('测试中文标题')plt.xlabel('X轴')plt.ylabel('Y轴')plt.show()```如果仍然有方块,请按照步骤3检查是否支持该字体,或者使用步骤5明确指定字体路径。注意:在Linux环境下,可能需要先安装中文字体(如文泉驿微米黑),然后使用该字体的名称(例如'WenQuanYiMicroHei')来设置。针对UserWarning提示字体缺失,除了设置正确字体外,引用[3]还提到了负号问题,设置`axes.unicode_minus=False`已经解决。如果上述方案都不行,可能是字体文件损坏或不完整,重新安装字体。§§相关问题§§1.如何在JupyterNotebook中永久设置Matplotlib的中文字体,避免每次重新设置?2.如何解决Matplotlib在生成PDF文件中文乱码的问题?3.在Docker容器中运行JupyterNotebook,如何安装中文字体并正确配置Matplotlib?4.Matplotlib中文字体设置对LaTeX渲染的影响?5.如何在Matplotlib中同时支持中文和特殊数学符号(如希腊字母)?</think> 要解决 Matplotlib 在 Jupyter Notebook 中使用 `%matplotlib inline` 时中文显示方块的问题,并处理 `UserWarning: Glyph missing` 警告,请按以下步骤操作: ### 综合解决方案 结合引用的核心原理,执行以下组合步骤: #### 1. **字体设置优化**(解决方块乱码) ```python import matplotlib as mpl import matplotlib.pyplot as plt # 设置中文字体(优先选择系统已装字体) plt.rcParams['font.family'] = 'sans-serif' # 启用通用字体族 plt.rcParams['font.sans-serif'] = [ 'Microsoft YaHei', # 微软雅黑 'SimHei', # 黑体 'WenQuanYi Micro Hei' # 文泉驿微米黑(优先Linux) ] # 确保启用矢量字体渲染 plt.rcParams['text.usetex'] = False plt.rcParams['svg.fonttype'] = 'none' ``` #### 2. **解决负号显示冲突**(处理Glyph警告) ```python # 修复中文与负号冲突[^3] plt.rcParams['axes.unicode_minus'] = False # 禁用Unicode减号 ``` #### 3. **核验当前可用字体** ```python # 列出所有可用字体验证安装状态[^1] from matplotlib.font_manager import FontManager font_names = sorted(set([f.name for f in FontManager().ttflist])) print("可用字体:\n", "\n".join(font_names)) ``` #### 4. **强制指定字体路径**(当通用设置失效时) ```python # 直接指定系统字体文件路径(Win示例) import matplotlib.font_manager as fm font_path = 'C:/Windows/Fonts/msyh.ttc' # 微软雅黑路径 prop = fm.FontProperties(fname=font_path) # 绘图时显式应用 plt.title('中文标题', fontproperties=prop) plt.xlabel('X轴', fontproperties=prop) ``` #### 5. **Jupyter特殊配置**(针对%matplotlib inline) ```python # 在Notebook首单元格增加配置 %matplotlib inline %config InlineBackend.print_figure_kwargs = {'facecolor' : 'w'} %config InlineBackend.figure_format = 'svg' # 优先矢量图格式 ``` ### 故障排除流程 1. **优先级验证** 运行步骤3的字体列表检查,确保输出中包含中文字体名 2. **层级覆盖检查** - 若图表基础元素乱码 → 确认步骤1是否执行 - 仅图例/标题乱码 → 应用步骤4显式声明字体 - 出现负号乱码 → 确保执行步骤2 3. **跨平台处理** ```python # Linux字体安装命令(Ubuntu) !sudo apt install -y fonts-wqy-microhei # 文泉驿微米黑 ``` ### 最终测试代码 ```python %matplotlib inline import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['Microsoft YaHei'] plt.rcParams['axes.unicode_minus'] = False plt.plot([1,2,3], [-1,2,-3]) plt.title('中文标题测试 - 正负值验证 ✓') plt.savefig('test_chinese.png', dpi=120) plt.show() ``` > **提示**:若仍有警告,可通过以下指令过滤非关键警报: > ```python > import warnings > warnings.filterwarnings('ignore', category=UserWarning) > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值