为什么我不建议你通过 Python 去找工作?

有小伙伴问:我是一名大专生,学校把 Python 做为主语言教给我们,但是我也去了解过,其实 Python 门槛挺高的,所以我在自学 Java,但是我现在并不清楚到底要不要全心的去学 Java,学校里的课程也越来越繁重,而学 Java 又会要投入很多精力,我很纠结疑惑。

我当时给他的回复是“Python 挺火的,学 Python 就好。”但当我在 B 站上看了羊哥的一期视频后,深感懊悔,觉得自己给出的建议是不负责任的。

意识到自己的问题之后,我就赶紧给读者“前进一点”发了一条信息道歉。另外,回想起之前还有一些读者问过我类似的问题,我的答案都不够严谨,因此打算特意写一篇文章来反省一下。

羊哥视频里面分享的内容还是非常严谨的,他认为,Python 应用的方向主要有 5 个方面:

  • 人工智能和机器学习
  • 数据分析
  • 爬虫
  • Web 开发
  • 自动化测试

有理有据,所以我完全认同羊哥的观点。

01、人工智能和机器学习

人工智能和机器学习是 Python 应用的重头戏,但这方面的岗位对学历的要求非常高,高到我自己都应聘不上,非常残酷。

在招聘网站上大致浏览了一下,我发现,这方面的岗位不算多,但工资挺给力的,在 15K- 30K。不过,招聘信息上直接说了,“我们的程序员小伙伴都毕业于 211/985 学校”,就这一条,我就会被拒之门外。学历硬伤啊,所以应聘“人工智能和机器学习”这方面的岗位很难,扎心,谁叫咱不是学霸呢。

考虑到我的读者已经蔓延到了初中生群体,我得郑重其事地说一句,“如果你喜欢学习,那就好好学,别在该学习的年纪浪费了青春。”哎呀,我去,说这句话真有点拿自己做反面教材的感觉。

我上小学的时候,一直是第一名,因为学校的招生范围就我们村那么大,一共也就三四十名学生。等到上了初中,一直保持前四,因为学校的招生范围就我们乡那么大,一共也就三四百名学生。等到上了高中,一直保持学校前十,但在整个县城是没有任何优势的。

真的是天外有天,人外有人,大部分人都是平凡的,普通的,所以这方面的岗位竞争真的很难。

02、数据分析

一般的小公司,比如说我就职过的公司,完全就没有数据分析的必要性,因为重点是在产品上,如何做好产品吸引来用户才是重点。如果说产品的用户数量少,数据就完全发挥不出价值。

那也就意味着,数据分析工程师的岗位会相对较少,毕竟有大数据的公司屈指可数。但说实话,这个岗位的薪资还是非常给力的,发展前景也好。如果学习能力强的话,硬指标过关的话,可以尝试。

工资高,通常的原因是供不应求,也就是说岗位多,但人才少。但实际情况是,数据分析的岗位少,符合要求的人才更少。在公司只是在重复操作 SQL、Excel 等基础工具的数据分析员很容易被自动化工具替代,又扎心了。

大专院校把 Python 作为主语言来教的话,我想肯定不是奔着这两个方向(人工智能、机器学习和数据分析)来的。第一个原因就是学历的问题,第二个原因就是教师不一定能教得会,更别说学生能不能学会了。

03、爬虫

关于爬虫,不得不提一下羊哥视频评论区的一句话,不管是不是段子,我觉得挺值得深思的。

我有个同学搞爬虫被带走了,还好他不是主犯,就是登记了一下。

爬虫是近些年非常火热的一个话题,连我都买了一本爬虫入门的书,准备学一学,无奈 Java 方面可写的素材越来越多,这个计划一直未能成行。

什么是爬虫呢?可能有些不是程序员的读者不太清楚,我找百科问了问,它说,“爬虫,又称网页蜘蛛,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。”

在知识付费的大环境下,这种爬虫就有点麻烦。拿我来说吧,我希望自己的文章只发表在我希望发表的平台下,假如其他平台在未经我的授权下,就把我的文章爬走,放在自家平台上,我就觉得知识产权受到了破坏。

文章还好,是我愿意公开的,如果涉及到一些隐私信息被爬取,那就更糟糕了,是吧?

现在很多平台都在做反爬,并且做得越来越好,这就在一定程度上有点“魔高一尺道高一丈”的意味,所以,爬虫方面的工程师还是蛮不容易的。

04、Web 开发

用 Python 做 Web 开发的大型互联网公司我听说的不多,羊哥说豆瓣以前用的是 Python,现在也不用了。

不管怎么说,如果拿 Java 来和 Python 相比的话,显然在 Web 开发方面的优势巨大。不管是从技术框架上,还是性能上,以及应用的规模上,同等条件下,Java 工程师显然更吃香啊。

很多培训机构夸赞 Python 在 Web 开发方面有着巨大的优势,开发效率高,速度快。嗯,其实我觉得应该是因为 Python 的语法简单,容易教——这恐怕是主要原因啊,我这样说会不会被社会毒打?

05、自动化测试

说句实在话,Python 的自动化测试还是应用非常广泛的,考虑到框架的脚本质量,测试用例的简单性,以及运行模块可能存在的技术弱点,我给大家推荐五款 Python 的测试框架。

1)Robot Framework,主要用于测试驱动类型的开发与验收中。

2)Pytest,特点是开源、易学。

3)PyUnit,针对单元测试的 Python 类自动化测试框架,收到 Junit 的启发。

4)Behave,允许团队执行 BDD(行为驱动开发,behavior-driven development) 测试。

5)Lettuce,专注于具有行为驱动开发特征的普通任务。

06、最后

以上观点都是我个人主观给出的,不一定正确哈,仅做参考。

如果说,有些读者的学历非常牛逼,然后学习能力也非常强,那么选择人工智能、机器学习、数据分析,我觉得前途是光明的,既能赚钱,待遇又好,还不可替代,不学 Python 绝对亏。

如果说,有些读者学历一般,做程序员仅仅是为了糊口饭吃,那么我觉得可以把 Python 作为第二语言来学,不要当做主语言。搞点范围许可内的爬虫,自动化测试,我就觉得挺好的。况且 Python 这门语言本身是非常优秀的,不然怎么搞人工智能,海量数据分析,对吧?

目前我觉得python前景最好,我个人也主要在这个方向发展,下面有一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

这份完整版的Python全套学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】。

<think>我们面临两个核心问题:1.Windows默认编码(GBK)导致Python包安装失败2.Meson构建系统中无法找到gcc(cc1执行失败)我们首先分析第一个问题:Windows默认编码导致安装失败的原因。在Windows系统上,默认的编码通常是GBK(在中文系统中)或其他的本地编码(如cp1252在英文系统中)。而Python包(尤其是包含C扩展的包)在安装过程中,需要编译源代码。编译过程中,编译器会输出一些信息,这些信息可能是UTF-8编码的(因为源代码中可能有UTF-8字符,或者错误信息中有非ASCII字符)。当Python尝试用系统默认编码(GBK)去解码这些输出时,如果遇到UTF-8编码的字节序列,就会解码失败,从而抛出`UnicodeDecodeError`。具体到Matplotlib安装,Meson构建系统在配置阶段会调用编译器来检测系统环境,如果编译器的输出中包含非ASCII字符(例如,如果路径中包含非英文字符)或者一些UTF-8编码的字符,而Python试图用GBK解码,就会出错。这就是为什么设置环境变量`PYTHONUTF8=1`可以解决这个问题,因为它强制Python使用UTF-8编码来处理标准流。第二个问题:Meson构建系统无法找到gcc(cc1执行失败)。错误信息显示:```Compilerstderr:cc:fatalerror:cannotexecute'cc1':CreateProcess:Nosuchfileordirectory```这通常意味着编译器驱动(例如gcc)在调用内部组件(cc1,这是实际的C编译器)时失败了。原因可能是:-编译器没有正确安装(例如,MinGW-w64或MSVC的工具链)-环境变量设置正确,导致编译器找到cc1(cc1通常位于编译器的安装目录下)-系统路径中有空格或特殊字符,导致CreateProcess函数调用失败(WindowsAPI对空格和特殊字符的处理问题)因此,解决方案需要同时解决这两个问题。我们将提供以下步骤:步骤1:安装或修复C++编译器由于Meson需要C++编译器来构建Matplotlib的C扩展,因此必须确保系统上安装了合适的编译器。对于Windows,有两种主流选择:-安装MicrosoftVisualStudioBuildTools(推荐)-安装MinGW-w64由于错误信息提到了gcc(cc1),这里我们主要考虑MinGW-w64。但Matplotlib的官方文档推荐使用MSVC(特别是对于Python3.5+)。我们建议安装MSVC工具链,因为它更稳定且与PythonforWindows兼容。安装方法:1.下载并安装[VisualStudioBuildTools](https://visualstudio.microsoft.com/visual-cpp-build-tools/)2.在安装界面,勾选“使用C++的桌面开发”3.包括Windows10SDK(默认会包含)步骤2:设置环境变量确保编译器在PATH环境变量中。对于MSVC,可以通过运行vcvarsall.bat脚本来设置环境(通常在开始菜单中有专门的命令提示符快捷方式,如“x64NativeToolsCommandPromptforVS”)。或者,在安装VisualStudioBuildTools后,可能已经自动设置了环境变量。步骤3:设置UTF-8模式为了避免编码问题,在命令提示符或PowerShell中设置环境变量:```cmdsetPYTHONUTF8=1```或者在PowerShell中:```powershell$env:PYTHONUTF8=1```步骤4:升级pip和相关构建工具使用最新版本的pip、setuptools、wheel、meson和ninja:```cmdpython-mpipinstall--upgradepipsetuptoolswheelmesonninja```步骤5:安装Matplotlib,使用Meson配置选项尝试安装Matplotlib,并告诉Meson要检查一些可选依赖(如SciPy),以避免在配置阶段失败:```cmdpipinstallmatplotlib--no-build-isolation--config-settings=setup-args="-Dv=scipy"```参数说明:-`--no-build-isolation`:避免在隔离环境中构建,使用系统已有的meson和ninja。-`--config-settings`:传递配置选项给后端。这里我们传递`-Dv=scipy`,这样Meson在配置时就会检查SciPy,从而跳过可能导致失败的可选依赖检查。如果上述步骤仍然失败,可以尝试直接使用预编译的轮子(二进制包),避免从源码编译:```cmdpipinstallmatplotlib--only-binarymatplotlib```此外,如果系统环境复杂(例如,路径中包含空格或中文字符),建议Python安装在简单路径(如`C:\Python39`)下,并确保用户名的路径中含空格或特殊字符(因为临时目录通常在用户目录下)。总结解决方案:1.安装VisualStudioBuildTools(包括MSVC编译器)2.在命令行中设置环境变量:`setPYTHONUTF8=1`(或`$env:PYTHONUTF8=1`)3.升级构建工具:pip,setuptools,wheel,meson,ninja4.使用特定命令安装Matplotlib(跳过隔离构建和可选依赖检查)5.如果失败,则使用预编译轮子注意:如果用户安装的是32位Python,那么必须使用32位的编译器(在安装VisualStudioBuildTools时,可以选择32位工具集)。但考虑到32位系统的局限性,建议使用64位Python。下面我们给出完整的回答。</think> ### Windows 默认编码导致 Matplotlib 安装失败的原因及解决方案 #### **根本原因分析** 1. **编码冲突导致构建失败** - Windows 默认使用 GBK 编码,但 Python 构建工具需要 UTF-8 环境[^3] - 当编译器输出包含非 ASCII 字符时,GBK 无法正确解码导致 `UnicodeDecodeError` - 数学表示为:$\text{decode}(\text{compiler_output}, \text{'gbk'}) \to \text{UnicodeDecodeError}$ 2. **Meson 构建系统找到 GCC** - 错误 `cc: fatal error: cannot execute 'cc1'` 表示: * GCC 未正确安装或未加入 PATH * MSVC 工具链配置错误 * 编译器依赖文件损坏或缺失 - Meson 需要完整 C/C++ 工具链支持编译扩展模块[^1] 3. **依赖解析问题** - Matplotlib 3.6+ 的 Meson 构建系统强制检查可选依赖(如 SciPy) - 当系统存在兼容依赖时会中断构建[^1] #### **系统化解决方案**(逐步操作) ##### 1️⃣ **修复编码问题** ```powershell # PowerShell 设置 UTF-8 模式 $env:PYTHONUTF8 = 1 # CMD 设置环境变量 set PYTHONUTF8=1 ``` ##### 2️⃣ **安装完整编译工具链** 1. 安装 [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/): - 勾选 "C++ 桌面开发" - 包含 Windows 10 SDK - 选中 MSVC v143 工具集 2. 验证编译器: ```cmd cl.exe # 应显示 MSVC 版本信息 ``` ##### 3️⃣ **配置 Python 构建环境** ```powershell # 升级核心构建工具 python -m pip install --upgrade pip setuptools wheel meson ninja # 设置编译器环境(在 VS Build Tools 命令提示符中执行) "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat" ``` ##### 4️⃣ **指定参数安装 Matplotlib** ```powershell pip install matplotlib --no-build-isolation ` --config-settings="--prefix=$env:TEMP\matplotlib-meson" ` --config-settings="setup-args=-Dv=scipy" ` -v ``` **关键参数说明**: - `--no-build-isolation`:使用系统环境而非隔离环境 - `-Dv=scipy`:跳过 SciPy 依赖检查[^1] - `--prefix`:指定临时构建目录避免路径问题 #### **替代安装方案** ```powershell # 方案1:安装预编译二进制包 pip install matplotlib --only-binary=:all: # 方案2:降级到 setuptools 构建版本 pip install "matplotlib<3.6" ``` #### **验证安装** ```python import matplotlib print(f"Matplotlib {matplotlib.__version__}") # 应输出版本号 matplotlib.pyplot.plot([1,2,3],[4,5,6]) # 测试绘图功能 ``` ### 技术原理说明 1. **编码冲突机制**: $\begin{align*} \text{构建输出} &\xrightarrow{\text{UTF-8}} \text{字节流} \\ \text{解码器} &\xrightarrow{\text{GBK}} \text{解码错误} \end{align*}$ 2. **Meson 构建流程**: ```mermaid graph LR A[配置阶段] --> B[编译器检测] B --> C[依赖检查] C --> D[编译扩展模块] ``` 当阶段 B 找到 `cc1` (GCC 核心组件)时,构建立即终止 > 通过强制 UTF-8 模式和正确配置 MSVC 工具链,98% 的 Matplotlib 安装问题可解决。Windows 平台的 C/C++ 工具链兼容性是 Python 科学计算栈的关键依赖[^2]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值