Python 语言因其简洁易学的特点而受到广泛欢迎,它为开发者提供了丰富的库和包,极大地促进了开发效率。然而,新手在开始使用 Python 的时候可能会遇到一些挑战,例如如何迅速而正确地安装第三方库,以及在遇到安装错误时如何迅速解决。
此外,项目开发中如何设置和管理虚拟环境也是一项基础但重要的技能。掌握这些技巧可以让 Python 初学者更加顺畅地推进他们的学习和工作流程。
在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy、Beautiful Soup等,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样。
这样需要我们根据需求不断的更新或卸载相应的库。
直接对我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,管理也相当混乱。
如以下场景:
Tips:其实虚拟环境好处也确实比较多,需要对此相关的命令有一些基本了解。 我记在这里,方便大家后续查阅。
1.查看已有虚拟环境
# 在命令行输入以下命令conda info --envs
2.创建新的虚拟环境
# 在命令行输入如下命令conda create --name newName python=3.7
当你的本地创建了多个虚拟环境之后,加之又在不同的虚拟环境中安装了 不同的第三方package,这样一来,虚拟环境的切换就很重要了。
3.切换虚拟环境
# 在命令行中切换到想要的虚拟环境,我这里切换到 project-1conda activate project-1
然后,就可以在当前环境中安装包:
# 在当前的paddle环境中安装好ipykernelconda install ipykernel
在使用pip和conda命令工具安装第三包时,安装速度慢得跑出超时异常。
此时,可以考虑实用实用国内镜像。
最简单方法给pip命令添加 -i 参数,并指定镜像索引的url
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gensim
通过使用清华的镜像,快速安装gensim包
以上就是通过添加-i镜像安装第三方包的方法。
pip 和 conda
下面是我总结的pip和conda异同,conda使用命令安装虚拟环境的使用逻辑。
这里也值得一提的是pip,因为conda和pip有与本主题相关的异同。
pip: Python包管理器。
您可以将pip视为ruby gem命令的python等价物。pip默认情况下不包含在python中。你可以使用homebrew安装Python,它会自动安装pip: brew install Python OSX的最终版本默认不包括pip。pip添加到您的mac系统的python版本,你可以sudo easy_install皮普发现和发布python包使用PyPI: python包指数让文件与ruby gemfile文本文件创建一个需求,pip冻结>让指出,在这一点上,我们安装了python在我们的系统,我们已经创建了一个让文件概述的所有python包已经安装在您的系统上。pyenv: Python版本管理器
pyenv可以让你轻松地在多个Python版本之间切换。它简单,不引人注目,并且遵循UNIX的传统,即只做一件事的单一用途工具。这个项目是从rbenv和ruby-build衍生出来的,并针对Python进行了修改。许多人对使用python3犹豫不决。如果您需要使用不同版本的python, pyenv可以让您轻松地进行管理。virtualenv: Python环境管理器。
来自文档:要解决的基本问题是依赖关系和版本,以及间接的权限。假设您有一个应用程序需要LibFoo的版本1,但另一个应用程序需要版本2。如何使用这两个应用程序?如果您将所有内容都安装到
/usr/lib/python2.7/site-packages(或您平台的标准位置)中,则很容易出现这样的情况:您无意中升级了不应该升级的应用程序。要创建虚拟环境,只需调用virtualenv ENV,其中ENV is是放置新虚拟环境的目录。要初始化虚拟环境,需要在ENV/bin/activate目录下输入源代码。要停止使用,只需调用deactivate。激活virtualenv后,您可以通过对项目的requirements.txt文件运行pip install -r来安装工作区的所有包需求。Anaconda:包管理器+环境管理器+附加科学库。
来自文档:Anaconda 4.2.0包括一个简单的Python安装(2.7.12,3.4.5和/或3.5.2)和超过100个预构建和测试的科学和分析Python包的更新,包括NumPy, Pandas, SciPy, Matplotlib和IPython,通过一个简单的conda安装有超过620个包可用。大约3GB,包括所有的软件包。有一个精简的miniiconda版本,这似乎是一个比使用pip + virtualenv更简单的选择,尽管我个人没有使用它的经验。虽然conda允许您安装包,但这些包与PyPI包是分开的,因此您可能仍然需要根据需要安装的包的类型额外使用pip。
参见:Conda vs PIP vs virtualenv(文档部分来自anaconda) PIP和Conda (stackoverflow)之间的区别virtualenv和pyenv (stackoverflow)之间的关系
一行代码让 pip 安装加速100倍
pip 安装普通方法:
pip install scrapy
这个安装可能是龟速,甚至直接抛出 timeout 异常,然后可能你会加长 socket 延时,通过设置 defualt-timeout 参数:
pip --defualt-timeout = 600 install scrapy
但是这不会加快安装速度,直接添加一个参数:
-i https://pypi.tuna.tsinghua.edu.cn/simple
完整安装命令:
pip --defualt-timeout = 600 install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
后面安装你可以直接复制我这行命令,安装包的速度会快很多。
pipreqs
pipreqs可以帮你找到当前项目的所有组件及其版本。
就是当别人给你一个程序的时候,你要在自己电脑上运行起来,就需要安装程序所依赖的组件,自己一个一个找太麻烦,我们需要一个统一管理机制。
安装
pip3 install pipreqs
使用步骤
在项目根目录下执行命令
pipreqs ./ # 报错就执行下面这条
pipreqs ./ --encoding=utf-8
如果提示pipreqs not found,需要添加site-packages到环境变量中,大概在
Python/3.8/Lib/site-packages 到环境变量中。
如果执行正确,可以看到生成了一个requirements.txt文件
安装requirement.txt文件
执行下面代码就会把项目用到的所有组件装上
pip3 install -r requirements.txt
您现在已经成功安装了Python,并验证了其运行。您可以开始学习Python编程,并利用它进行各种项目和应用程序的开发。祝您学习愉快!