Python 目前用哪个版本好,离线使用该如何操作

2023-11-04 11:11:19 +08:00
 jiminjohn0402

起因:办公环境不能连外网且没有自建库,但是又想用 python 处理数据 需求:处理解析 csv 文件,然后转为 xlsx ,处理 csv 文件可能会比较复杂,会分组统计数量,模糊匹配,非空判断,解析多 csv 文件然后做关联导出等等 想法:自己下载安装包,第三方库 问题: 1 、目前下载了 python 3.9.18 ,是否合适和稳定(只是数据处理和生成 xlsx ) 2 、安装好之后第三方工具库一直没有办法使用,然后就想着下载然后离线安装 以安装 pandas 为例,遇到 numpy 没有,安装 numpy 出现 cython 没有,安装 cython 出现 vc++没有 所以有没有那种集成安装包,可以解压使用,一般也不要求新的功能,电脑一直无法连外网

4502 次点击
所在节点    Python
30 条回复
Belmode
2023-11-04 11:39:15 +08:00
配好个虚拟机,在办公环境运行
crackidz
2023-11-04 11:41:46 +08:00
你的需求看上去需要的是 conda
Thymolblue
2023-11-04 11:43:39 +08:00
3.10 目前比较舒服,建议是直接搞个 miniconda 装好环境后把环境打包考到另外的电脑就能用
leave8426
2023-11-04 11:46:44 +08:00
3.10 支持模式匹配
Donahue
2023-11-04 11:48:11 +08:00
我感觉你的需求来说没有太大差别, 然后你需要的是 venv 管理虚拟环境, 在自己电脑装好之后所有包都在文件夹下面,压缩打包复制到办公环境就可以了
jiminjohn0402
2023-11-04 11:59:49 +08:00
@crackidz
@Thymolblue 有木有教程,我在家里电脑搞好,搞到公司电脑上
just1
2023-11-04 12:28:11 +08:00
pyinstaller 编译出来也可以
jianghu52
2023-11-04 12:38:14 +08:00
支持 5 楼。我现在就是用的这种方案。另外,版本我用的是 3.10.据说性能比 3.9 的高不少。(当然,3.12 更高,但是不稳定)
NoOneNoBody
2023-11-04 13:22:02 +08:00
用什么版本要看你项目的依赖,如果依赖是旧的,装新版也没用,一跑就报错,选所有依赖都能跑的最新版

anaconda 需要教程(因为预装一堆包及有界面),anaconda 预装包太多,自己也装很多包的话容易有问题,参考下面“补充”
miniconda 不预装依赖(有 cpython 之类,几个),不需要教程,就两三条命令就能用了,搞清目录结构就行

miniconda 先安装好官方文件,先不要装任何包
输入命令 conda create --name 环境名字[建议纯英文] python=py 版本
这样就在 miniconda/envs 文件夹里面新建了各文件夹名为[你刚刚指定的环境名称],这个文件夹里面的结果几乎跟外面一样,也是和外面分开的,必要时把相关路径添加到系统环境参数 PATH

输入命令 conda actvice 你刚刚指定的环境名称
这样就进入这个环境(说的不是路径 cd 的进入),然后跑 pip install, conda install 或者脚本,都是用这个环境的 py 版本,依赖包也是装在 envs/xxx/Lib/site-packages 里面
注意:如果某个项目跟随环境,运行前 “conda actvice ...”命令是必须的

补充:在环境内用 conda install 还是 pip install ,区别参考网文,一般建议都是用 conda install ,但在实际使用中,我的经验是 conda 服务器不好连,国内源有时会跟官方不一致(虽然概率低,但我遇到了),而且 conda 每个包安装后都要将依赖轮询一遍,确保稳定性,好处明显,但包多的话,这个轮询很慢,甚至达小时级(冻住?),国外经常有人吐槽这个;我实际使用中,用 pip install 也能正常使用,导出环境参数也没问题,我基本是遇到编译错误的包,才用 conda install ,因为 conda 源是预编译的

参考网文如何更改默认环境,原来默认是 "base",不在 envs 里面,就是 miniconda 首次安装时的版本,不用跑 active 命令就能用的版本,个人建议 base 不要作为项目运行环境,而且包容易版本冲突,包增多时越装越乱,base 应该作为一些通用脚本的运行环境,例如简单的文件批量处理,一些依赖很少的计算……

至于 export/import 某个环境(仅参数),可参考网文,要保证不同设备一致性,就每次相同环境都装相同的包(含包的版本)
一些要编译的包,直接 copy 不能保证一致性,虽然大部分是可用的,离线的话建议找跟 os 和 python 版本对应的 whl 文件安装

以上说的是 Windwos ,linux 或类似架构,根据用户权限,环境的路径会不同,一般在用户文件夹内
以上基本能用了,更详细的命令,再慢慢看文档好了
NoOneNoBody
2023-11-04 13:30:02 +08:00
上面#9 ,python=py 版本,格式为 python=3.10 这样
另有一些 typo ,不一一查了,能读懂就行
NoOneNoBody
2023-11-04 13:35:16 +08:00
呃,%$%*(()_++_
activate 居然打错了
conda activate 环境名
才对
fbichijing
2023-11-04 14:12:55 +08:00
看你的需求,可能一个 pandas 就足够了。

至于 Python 版本的话,如果是自己用的,没有打包给别人用的情境,个人觉得就使用目前 Python 官网的最新稳定版本比较合适。Python 3.8 之后不支持 win7 ,有部分电脑还用着 win7 系统。

"无法连外网"是不是可以理解是局域网里面的台式电脑。可能的话,还是搞一个无限网卡安装这些模块比较好。很多模块的运行都基于一些其他模块,在使用 pip 安装的时候都会直接全部安装完成。手动去一个一个安装没有实际操作过,但估计挺麻烦的。就以 pandas 来说,可能要安装 numpy, openpyxl 等等。

默认安装的 pandas 不包含隐式导入的东西。比如你需要对 .xls 的文件进行读写,可能还需要安装 xlrd,xlwt 。这两个不包括在 pip 安装 pandas 的默认范围内。大概是 pandas 考虑 .xls 文件没什么人用,所以没写进 install_requires 里面吧。

建议找个无限网卡安装,减少不必要的烦恼。节约点时间听下歌不好^_^
fbichijing
2023-11-04 14:17:36 +08:00
@NoOneNoBody 我讨厌 anaconda 。又不是不会装,这 anaconda 装了一大堆东西... 不过如果是在无法联网的电脑上的话,或不失为一个办法。

还是不喜欢 ananconda.我喜欢简洁的东西,不喜欢全家桶。
fbichijing
2023-11-04 14:23:18 +08:00
目前 python 最新稳定版本是 3.12.0 。pandas pypi 写着的支持版本目前(2023-11-04 14:22:03)最高是到 3.11 。所以,可考虑 Python 版本 [3.8, 3.11]
zq11211277
2023-11-04 14:35:24 +08:00
内网环境编程真的恼火
NoOneNoBody
2023-11-04 14:37:49 +08:00
@fbichijing #13
我也讨厌 anaconda 标准版,装 miniconda 好了,就装了个 conda 环境和自带编译器,啥都没有干干净净
我搞不定 Windows 编译环境(不是这家的),经常遇到编译错误,说什么 cl.exe 找不到,明明就在 PATH 里面
我写的东西是大型玩具,不是给别人用的,不想花时间在配置环境上面,尤其要搞清编译问题,对我来说没一头半个月不行
k2wang
2023-11-04 14:51:33 +08:00
@fbichijing pandas 已经支持 Python 3.12 了,https://pypi.org/project/pandas/#files
fbichijing
2023-11-04 15:33:02 +08:00
@k2wang

我看左边的

Programming Language

Cython
Python
Python :: 3
Python :: 3 :: Only
Python :: 3.9
Python :: 3.10
Python :: 3.11

没写 3.12 ,不过 Built Distributions 似乎有 3.12 的相关文件。不敢肯定。如果站在楼主的情境下,我应该会在 3.8 和 3.11 之间做选择。如果不考虑打包给老电脑使用和一些库不支持新版本,3.11.* 应该是不二之选。

在这种时候,在适合需求的前提下安装最新的版本,肯定比后续更新来得更干脆。
encro
2023-11-04 15:34:31 +08:00
pyenv 。miniconda ,能满足大部分需求了,如果没有一些奇怪的包,可以试试 pdm.
python 版本好像主流是 3.10 左右。都需要根据你用的包兼容性来决定。
piuu
2023-11-04 15:57:03 +08:00
python embed 便携版, 不考虑安装路径

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/988536

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX