1
ClericPy 2020-11-01 18:48:09 +08:00 1
我自己模仿 shiv 做了个把依赖打包成 pyz 的 zip 包的库凑合用着了... 反正就是基于 PEP441 和 zipimport 以及 pip, 把所有相关依赖都放到一个文件夹然后 zip 一下, 调用的时候就是 ./env.pyz script.py
暂时没发现什么大问题, 就是遇到动态的 .pyd/.so 那些库, 得提前解压缩出来 |
2
renmu123 2020-11-01 18:52:07 +08:00 via Android 1
我目前使用 pyenv+poetry
1. pyenv 可以管理系统级别 Python 版本,poetry 新建的项目也都是虚拟环境 2. poetry 在 add 包后会自动添加到 myproject.toml 文件中并生成 lock 文件,只要将这两个文件加入源码管理中,在别的机器中只要执行 poetry install 就可以安装了。如果 win 种设涉及到编译的包需要安装 vs studio 之类的工具,我一般就手动直接找个编译好的安装 3. 兼容性检查好像有,因为每个包都有支持的 Python 版本,我倒没有这个需求,一般就一个版本用到死,如果升级出现了问题是比较难 debug 的 ps:poetry 在 win 中不能用,但是在 win 中本身管理多个 Python 环境也是比较容易的 |
3
ClericPy 2020-11-01 18:53:37 +08:00
@ClericPy 点错了直接发出来了... 没写完, 重新发一次
接上文... 不过也做了自动解压缩并且比对打包时间戳来决定是否要重新解压, 没什么要操心的 做这小工具其实对我来说主要是 Hadoop Streaming 需要各种离线工具上传, 所以抽了个周末写的, 当 app 用还好, 当虚拟环境用因为是基于 subprocess call 来启动自身解释器去解释别的 py 文件, 不知道运行久了会不会有什么问题 同 Manjaro xfce 路过 v2ex 不支持代码格式化就算了, 还老说我 [请不要在每一个回复中都包括外链,这看起来像是在 spamming] 问题是我哪发链接了 |
5
superrichman 2020-11-01 19:21:17 +08:00 via iPhone
用 python3 -m pip install xxx —user 安装的模块会在用户目录下,和系统的不在一起
要重装或迁移可以把整个目录复制粘贴(不过最好还是维护好 requirements.txt ) 我升级就是直接把 3.7 的目录复制到 3.8,个别模块有问题再单独重装 |
6
zachlhb 2020-11-02 08:19:34 +08:00 via Android
conda 可以导出包列表,重建环境导入不就行了
|
7
no1xsyzy 2020-11-02 11:13:33 +08:00
#2 基础上再用 dephell 转换一下依赖项?具体没用过,不过说是可以 setup[.]py poetry 各类 requirements 互转
目前 virtualenvwrapper + pip-tools 用得爽,解释器一直尽量跟最新版本,用上了 := 已经退不回 <3.8 了 |
8
yucongo 2020-11-02 12:34:35 +08:00
|
10
numoone 2020-11-04 17:45:06 +08:00
conda 的虚拟环境管理就很好用啊。在 linux 的话,直接 copy 虚拟环境目录到另外一台设备上就能直接使用。
|
11
endpain 2020-11-04 19:47:00 +08:00
建议还是用 conda 吧~深入了解使用一下还是很不错的。
|
12
HAluelue 2020-11-08 13:22:19 +08:00
我一般是用 requirements.txt- -
|