【发布时间】:2021-07-21 14:06:30
【问题描述】:
这个问题也有点啰嗦——但真诚地请求帮助!
我一直在努力确保我的 Python 安装是最新的,并且在我使用的所有不同机器和设备(例如树莓派、台式电脑和笔记本电脑)之间尽可能接近相同。
我最近的挫败感源于一个实际示例,其中我有两个相同的 Pi Zero W,带有 BME280 传感器,运行完全相同的 Python 脚本——一个运行完美,另一个抱怨 urllib3——尽管两个 Pi 都使用相同版本的 Python 等,甚至在卸载和重新安装 influxdb 之后(首先开始抱怨 influxdb 客户端不可用 - 然后在卸载和重新安装之后,它发现了一些新的东西,以 urllib3 的形式抱怨......) ,然后卸载并重新安装 urllib3 和请求(但仍然无法正常工作...)
我发现它同样令人沮丧,即使只是在一台 PC 上保留和维护一个版本的 Python 和库 - 特别是如果你将 Mac 投入到看似有自己“专用”Python 安装的混合中 - 尝试安装“专用”不会与“内置”版本混淆的 Python 环境也会导致事情在一段时间后变得如此混乱 - 你不再知道什么在哪里,甚至使用 pip/pip3 开始产生你不期望的结果在您希望看到它们的地方提供库的条款...
是否有一些优雅的解决方案可以在设备等之间轻松转移?也许像在某个地方安装一个“主”python 安装,我可以克隆或“打包”,然后随脚本一起移动,所以我知道它可以在我安装它的任何设备上工作,并且无论将来有什么更新都可以继续工作?一个 Docker 容器可以工作 - 但我很确定它对于 Pi Zero 来说太大了......
我知道 venv,但我不确定这是否可以在设备之间“复制和粘贴”。同样,理想情况下,我想在我的 PC 上创建代码,并且能够将 python 文件复制到另一台设备,并且知道它会在任何地方运行相同... rant> :)
【问题讨论】:
-
Docker 绝对是我的第一个想法。你试过了吗?
-
当你使用 venv/conda 实际使用环境时会发生什么错误?环境被设计为沙盒,至少在很大程度上不依赖于基础安装。
-
能否请edit 删除咆哮部分并专注于一个问题的问题?真的很难弄清楚你到底在问什么,具体点涵盖了广泛的主题。
-
打包你的脚本。在
setup.py中放置精确的依赖关系(或者,在未来,pyproject.toml是旧约定的新兴替代品)。
标签: python updates libraries maintenance