V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jiminjohn0402
V2EX  ›  Python

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

  •  
  •   jiminjohn0402 · 264 天前 · 4084 次点击
    这是一个创建于 264 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  261 天前
    按照 miniconda 迁移环境方式搞好了,感谢各位大佬
    30 条回复    2023-11-08 14:42:56 +08:00
    Belmode
        1
    Belmode  
       264 天前
    配好个虚拟机,在办公环境运行
    crackidz
        2
    crackidz  
       264 天前   ❤️ 1
    你的需求看上去需要的是 conda
    Thymolblue
        3
    Thymolblue  
       264 天前 via Android
    3.10 目前比较舒服,建议是直接搞个 miniconda 装好环境后把环境打包考到另外的电脑就能用
    leave8426
        4
    leave8426  
       264 天前
    3.10 支持模式匹配
    Donahue
        5
    Donahue  
       264 天前
    我感觉你的需求来说没有太大差别, 然后你需要的是 venv 管理虚拟环境, 在自己电脑装好之后所有包都在文件夹下面,压缩打包复制到办公环境就可以了
    jiminjohn0402
        6
    jiminjohn0402  
    OP
       264 天前
    @crackidz
    @Thymolblue 有木有教程,我在家里电脑搞好,搞到公司电脑上
    just1
        7
    just1  
       264 天前 via Android
    pyinstaller 编译出来也可以
    jianghu52
        8
    jianghu52  
       264 天前
    支持 5 楼。我现在就是用的这种方案。另外,版本我用的是 3.10.据说性能比 3.9 的高不少。(当然,3.12 更高,但是不稳定)
    NoOneNoBody
        9
    NoOneNoBody  
       264 天前   ❤️ 2
    用什么版本要看你项目的依赖,如果依赖是旧的,装新版也没用,一跑就报错,选所有依赖都能跑的最新版

    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
        10
    NoOneNoBody  
       264 天前
    上面#9 ,python=py 版本,格式为 python=3.10 这样
    另有一些 typo ,不一一查了,能读懂就行
    NoOneNoBody
        11
    NoOneNoBody  
       264 天前
    呃,%$%*(()_++_
    activate 居然打错了
    conda activate 环境名
    才对
    fbichijing
        12
    fbichijing  
       264 天前
    看你的需求,可能一个 pandas 就足够了。

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

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

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

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

    还是不喜欢 ananconda.我喜欢简洁的东西,不喜欢全家桶。
    fbichijing
        14
    fbichijing  
       264 天前
    目前 python 最新稳定版本是 3.12.0 。pandas pypi 写着的支持版本目前(2023-11-04 14:22:03)最高是到 3.11 。所以,可考虑 Python 版本 [3.8, 3.11]
    zq11211277
        15
    zq11211277  
       264 天前
    内网环境编程真的恼火
    NoOneNoBody
        16
    NoOneNoBody  
       264 天前
    @fbichijing #13
    我也讨厌 anaconda 标准版,装 miniconda 好了,就装了个 conda 环境和自带编译器,啥都没有干干净净
    我搞不定 Windows 编译环境(不是这家的),经常遇到编译错误,说什么 cl.exe 找不到,明明就在 PATH 里面
    我写的东西是大型玩具,不是给别人用的,不想花时间在配置环境上面,尤其要搞清编译问题,对我来说没一头半个月不行
    k2wang
        17
    k2wang  
       264 天前
    @fbichijing pandas 已经支持 Python 3.12 了,https://pypi.org/project/pandas/#files
    fbichijing
        18
    fbichijing  
       264 天前   ❤️ 1
    @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
        19
    encro  
       264 天前
    pyenv 。miniconda ,能满足大部分需求了,如果没有一些奇怪的包,可以试试 pdm.
    python 版本好像主流是 3.10 左右。都需要根据你用的包兼容性来决定。
    piuu
        20
    piuu  
       264 天前
    python embed 便携版, 不考虑安装路径
    Drahcir
        21
    Drahcir  
       264 天前
    无脑 miniconda 。省心省力。
    YsHaNg
        22
    YsHaNg  
       264 天前
    venv https://docs.python.org/3/library/venv.html#creating-virtual-environments 别的电脑上建立好环境 copy 文件夹就可以了
    ADMlN
        23
    ADMlN  
       263 天前   ❤️ 1
    我之前都是在外网电脑用 pip download 下载第三方库的,pip download 下载的时候会自动下载依赖,下载完之后,在外网电脑用 venv 建个虚拟环境,用 pip install -f 安装包目录 --no-index 安装测试一遍下载的包,测试过没问题了,把整个安装包目录拷到内网,重复一遍安装命令,就可以了
    kingmo888
        24
    kingmo888  
       263 天前
    你这种的话实际不是版本号问题,
    使用 embed 版本,在其他可访问公网的机器上把需要的配置好后,整个文件夹打包到目标电脑即可。全绿色。
    dayeye2006199
        25
    dayeye2006199  
       263 天前
    miniconda + conda-pack

    conda pack -n my_env -o out_name.tar.gz
    去目标机上解压就可以用了。
    huoshen
        26
    huoshen  
       263 天前
    咋说呢, 看你的需求, 虽然上面有人说不要用 anaconda, 但我觉得你既然没法连接外网, 那还是弄个大而全的安装包比较好, 去这里找你对应系统版本的东西吧, 自带的东西, 带有 numpy pandas 等等常用的都有了, 再装一下 excel 相关的东西就行了.
    https://www.anaconda.com/download#downloads
    lybcyd
        27
    lybcyd  
       263 天前
    用 pip download 提前下载好,然后用--no-index -f 包目录的方式安装
    gumuxi
        28
    gumuxi  
       263 天前
    有互联网的环境:cd pip_packages && pip donwload -r requirements.txt
    没互联网的内网:pip install -r requirements.txt --no-index -f ./pip_packages
    jiminjohn0402
        29
    jiminjohn0402  
    OP
       262 天前
    @NoOneNoBody conda 搞好了,还是比较方便的,非常感谢
    makejohn2015
        30
    makejohn2015  
       260 天前
    我是在外网 pip download xxx , 然后复制过去,直接内网 pip install xxx1 xxx2 这样
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2787 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:00 · PVG 22:00 · LAX 07:00 · JFK 10:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.