您现在的位置是:综合 >>正文
python常用包安装
综合7164人已围观
简介装Python包这件事,说简单也简单,一行pip install就完事;说麻烦也麻烦,网络一抽风、版本一冲突,半小时就搭进去了。我见过太多人卡在装包这一步,还没开始写代码就先被环境劝退。下面这些内容, ...
装Python包这件事,常用说简单也简单,包安一行pip install就完事;说麻烦也麻烦,常用网络一抽风、包安版本一冲突,常用半小时就搭进去了。包安我见过太多人卡在装包这一步,常用还没开始写代码就先被环境劝退。包安下面这些内容,常用是包安我自己踩坑踩出来的经验,不是常用从官方文档里抄的。
pip 到底怎么用才顺手
pip 是包安 Python 自带的包管理工具,3.4 以后基本都预装了。常用但很多人只知道 pip install requests,包安不知道后面还有一堆参数能救命。常用
比如装到一半超时了,国内网络直连 PyPI 经常几十 KB 每秒。这时候换源是第一步:
pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple 清华源我用得最多,偶尔也换阿里云或者中科大。但每次打一长串地址太烦,可以直接改配置。Windows 下在用户目录建 pip\pip.ini,Mac 和 Linux 建 ~/.pip/pip.conf,内容写:
[global] index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = pypi.tuna.tsinghua.edu.cn 改完之后 pip 就默认走国内源了,省事。有个细节:trusted-host 这行不加,某些环境下会报 SSL 证书错误。我一开始没写,折腾了半天才反应过来。
虚拟环境不是可选项
我刚开始学 Python 的时候,所有包都往全局环境里装。直到有一天两个项目一个要 Django 2.2 一个要 Django 4.0,直接打架。从那以后每个项目必建虚拟环境。
标准库自带的 venv 够用了:
python -m venv myenv # Windows myenv\Scripts\activate # Mac/Linux source myenv/bin/activate 激活之后命令行前面会出现 (myenv),这时候 pip install 装的包只影响这个环境。退出用 deactivate。
有人喜欢用 conda,尤其是搞数据科学的。conda 装 numpy、pandas 这类带 C 扩展的包确实省心,因为它直接给编译好的二进制。但 conda 的源配置又是另一套逻辑,新手容易搞混。我的建议:纯 Python 开发用 venv + pip,涉及科学计算再考虑 conda。
那些经常要装的包
requests 不用多说,发 HTTP 请求的标准选择。比 urllib 好用太多,requests.get(url).json() 一行搞定的事,urllib 得写七八行。
numpy 和 pandas 做数据分析绕不开。装 numpy 在 Windows 上偶尔会遇到编译问题,直接 pip install numpy 一般没事,因为现在都有预编译的 wheel 包了。如果报错,先升级 pip:python -m pip install --upgrade pip。
Flask 和 FastAPI 看需求选。Flask 轻,上手快,适合小项目。FastAPI 自带异步和文档,性能好,但这几年版本迭代快,偶尔有 breaking change。我去年一个项目用 FastAPI,升级了个小版本,原来能跑的代码直接报错,查了半天是依赖的 pydantic 版本不兼容。
还有 pytest,写测试用的。pip install pytest 之后,在项目目录跑 pytest 就能自动发现 test_ 开头的文件并执行。
装不上怎么办
最常见的原因是 Python 版本和包不兼容。比如某个包只支持到 Python 3.9,你用的是 3.12,pip 找不到对应的 wheel 就会尝试从源码编译,然后报一堆红字。
解决办法有几个:去 PyPI 页面看这个包支持的 Python 版本范围;试试装旧版本 pip install package==1.2.3;或者用 pip install package --pre 装预览版。
还有一种情况是缺系统依赖。比如在 Linux 上装 mysqlclient,得先 apt install libmysqlclient-dev。这种报错信息里通常会提示缺什么,仔细看就行。
说实话,装包这件事没有一劳永逸的方案。Python 的包生态太庞大,维护质量参差不齐。我的习惯是每个项目都写一个 requirements.txt,用 pip freeze > requirements.txt 导出,换机器的时候 pip install -r requirements.txt 一把装回来。版本号锁死,能避免很多“在我电脑上能跑”的尴尬。
Tags:
上一篇:ctf攻防
下一篇:宝塔ssh终端使用教程
相关文章
彩票挂机网
综合彩票挂机网,说白了就是一群程序员的赌场。我见过最狠的一个,把家里三台电脑全挂上脚本,白天上班晚上盯盘,一个月流水走了八十多万。结果呢?平台跑路那天,他连服务器IP都查不到——那网站从搭建到关停,总共活 ...
【综合】
阅读更多pikachu漏洞
综合Pikachu漏洞平台,名字听着像宠物小精灵,实际是个故意造出来的靶场。里面全是开发者常犯的错,SQL注入、XSS、CSRF,一个不少。我第一次打开它时,界面简陋得像个2005年的学生作业,但正是这种 ...
【综合】
阅读更多速腾净水器维修缺水怎么处理
综合速腾净水器屏幕上跳出一个水滴图标,旁边闪着“缺水”两个红字,机器嗡鸣两声后彻底罢工。多数人第一反应是打电话报修,但维修师傅上门前,你自己动手能解决的概率超过七成。 先别急着拆机器。缺水报警的常见原因根 ...
【综合】
阅读更多