今天写这篇文章的时候不知道选什么歌好,正好今天清华大学学生电子音乐协会的 Alaemir Young 坐在俺旁边,那还不如试试他喜欢的 Peggy Gou 的 (It Goes Like) Nanana。
1 月 17 日的时候,Jim 才发现 2377 的小朋友还在用 Jim 在四年前写的资料,这是不好的,随着时间的推移,Python 和 Anaconda 都有了很大的变化,所以今天就来写一篇在 2024 年适用于初学者的 Anaconda 和 Python 的常见问题。
前言
Jim 希望大家仔细思考这个问题:都 2024 年了,使用 Python 进行数据处理和数值计算还合适吗? Jim 想,这个问题的答案应该不是肯定的。
在这里,我们只跟 Julia 比,Julia 有以下优势:
- Julia 专为高性能而设计。Julia 的 JIT(Just-In-Time,即时编译)编译意味着它的性能往往优于 Python,尤其是在数值和科学计算任务中,Python 在很大程度上依赖于 NumPy 等第三方库。
- Julia 内置了对并发和并行的支持,使编写高性能、多线程代码变得更加简单。而 Python 由于使用全局解释器锁(GIL),很难有效利用多核进行并行处理。
- 科学计算的易学性:Julia 的语法和函数名称通常与 MATLAB 中的相似,这使得从 MATLAB 过渡到 Julia 的用户比从 Python 过渡到 Julia 的用户更容易学习。
但是,Python 也有以下优势:
- 社区生态:Python 拥有更大的生态系统和更广阔的社群,尤其是网络开发、数据科学和机器学习等领域。这就意味着,如果你在这些领域工作,你可以更容易地找到 Python 的解决方案和支持。
- 学习曲线: Python 因其可读性和简单性而广受赞誉,因此成为初学者和快速应用程序开发的首选语言。
- 跨学科应用: Python 在不同领域(网络、数据科学、人工智能、自动化等)的通用性使其在各种应用中更加灵活。
所以,Jim 的建议是:如果你是初学者,那么你应该学习 Python;如果你是需要高性能数值计算的专业人士,那么你应该学习 Julia。
但是,本文还是假定读者已经选择了 Python,那么接下来就来看看在 2024 年,适用于初学者的 Anaconda 和 Python 的常见问题。
对于 Python,什么 IDE 最合适?
什么是 IDE?
首先,什么是 IDE?IDE(Integrated Development Environment,集成开发环境),是一种软件应用程序,它提供了用于软件开发的所有功能。IDE 通常包括代码编辑器、编译器、调试器和图形用户界面(GUI)构建工具。IDE 使开发人员能够更快地开发应用程序,因为它提供了所有必要的工具。
在说接下来的话之前,Jim 先进行一个自我代入:
人都是先入为主的。 —— Jim Zhang, 2024.1.20
也就是说,最开始用的东西,往往会成为自己的工作习惯。
Jim 的亲身经历
Jim 2019 年年初第一次接触 Python,最开始的时候,甚至没有在用 IDE,而是在用。。Notepad++(以下截图于 2019 年 3 月 24 日):
这是当时刚学两个月 Python 的 Jim 写的第一个 Python 工程(很怀念!那个时候用的机器还是 2016 年发布的 Lenovo Yoga 710),主要想做的事情是从西语词典上爬取西语单词的中文释义、例句、动词变位等信息,将 I/O 流通过终端进行交互。
后来,Jim 不知道什么时候发现,Visual Studio Code(以下简称 VS Code)还挺好用的。(严格意义上讲,VS Code 不是 IDE,而是代码编辑器,但是它的插件生态系统非常强大,可以通过插件的方式实现 IDE 的功能。)1
正如读者们所见,这篇文章也是在 VS Code 中写的:
Jim 用 VS Code 的原因有以下几点:
- 免费,而且开源。
- 插件生态系统非常强大,可以通过插件的方式实现 IDE 的功能。
- 界面简洁、美观,而且可以自定义。(写代码的时候必须要有一个好心情!)
- 可以在终端中进行很多操作,比如 Python、node.js 等等。
- 可以通过插件的方式实现很多功能,比如 Markdown 预览、LaTeX 编辑、Jupyter Notebook 预览等等。
- 使用 Git 进行版本控制非常方便。
- VS Code 相对于其他 IDE,比如 PyCharm,更加轻量级,占用的内存和存储空间更少。
至于 PyCharm
Jim 当然也用过 PyCharm,但是 Jim 觉得 PyCharm 有以下几个缺点:
- PyCharm 占用的内存和存储空间太大了。
- PyCharm 过于面向工程,对于初学者来说,学习曲线过于陡峭。
- PyCharm 对于初学者来说,有很多功能是用不到的,比如 Django、Flask、PyQt(写到大作业,,我不好说)等等。
- PyCharm 的社区支持不如 VS Code,尤其是插件生态系统。
- PyCharm 的界面不如 VS Code 美观(看起来很压抑)。
当然,这只是 Jim 的个人观点,如果你喜欢 PyCharm,那么你可以继续使用 PyCharm。
是 conda
还是 pip
?
其实这个标题并不准确,其实更准确的问题应该是:我需要利用 conda
工具来进行包管理或者环境管理吗?
对于初学者而言,Jim 的建议是:不需要。
有关 Anaconda 及 Spyder 的常见问题
Q1:Can't Install: Failed to extract packages
具体长这样:
一般来说,这有很多种原因,比如:
- 安装包损坏,需要重新下载安装包。
- 路径过长,详见:Can’t install: Failed to Extract Packages Error @ Anaconda Cloud Community。
- 电脑中有残留的 Anaconda 文件,需要清理干净。(说实话,这个问题是最麻烦的)
- Anaconda 已不支持 Windows 7,如果需要在 Windows 7 上安装 Anaconda,请参见Using Anaconda on older operating systems @ Anaconda Documentation。
但是,Jim 之前说的“路径里有非 ASCII 字符”的这个判断是错误的。
Q2:Spyder 启动时崩溃
有几种情况会导致 Spyder 启动时崩溃:
jupyter-core
炸掉了:a. 打开 Anaconda Prompt;b. 执行conda install jupyter-core
。spyder
配置被篡改:a. 打开 Anaconda Prompt;b. 执行spyder --reset
。
注释
Footnotes
-
Visual Studio Code 通常被认为是源代码编辑器,而不是完整的集成开发环境(IDE)。不过,源代码编辑器和集成开发环境之间的区别有时会很模糊,尤其是在 VS Code 的情况下,因为它具有广泛的特性和功能。VS Code 虽然主要是一个源代码编辑器,但也提供了许多集成开发环境的典型功能,如调试功能、内置 Git 支持、智能代码自动补全(IntelliSense)、广泛的插件生态系统、集成终端等等。由于具有这些功能,很多人认为 VS Code 可与集成开发环境相媲美。另外,与 Visual Studio、Eclipse 或 IntelliJ IDEA 等传统集成开发环境相比,VS Code 的设计更轻便、模块化程度更高。 ↩