微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python环境维护

如何解决Python环境维护

这个问题也有点咆哮 - 但真正的帮助请求!

我一直在努力确保我的 Python 安装是最新的,并且在我使用的所有不同机器和设备(例如,树莓派、台式电脑和笔记本电脑)之间尽可能接近相同。

我最近的挫折特别源于一个实际例子,我有两个相同的 Pi Zero W,带有 BME280 传感器,运行完全相同的 Python 脚本 - 一个运行良好,另一个抱怨 urllib3 - 尽管两个 Pi 运行 DietPi 与相同版本的 Python 等,甚至在卸载并重新安装 influxdb 之后(首先开始抱怨 influxdb 客户端不可用 - 然后在卸载并重新安装后,它发现了一些新的东西以 urllib3 的形式抱怨......) ,然后卸载并重新安装 urllib3 和请求(但仍然无法正常工作...)

我发现即使只是在一台 PC 上保留和维护一个版本的 Python 和库也同样令人沮丧 - 特别是如果你将 Mac 投入到看起来有自己的“专用”Python 安装的组合中 - 尝试安装一个“专用”不会弄乱“内置”版本的 Python 环境也会在一段时间后导致事情变得如此混乱 - 你不再知道什么在那里,甚至使用 pip/pip3 开始产生你不期望的结果在您希望看到的地方提供图书馆的条款......

是否有一些优雅的解决方案可以在设备等之间轻松转移?也许像在某处安装“主”python 之类的东西,我可以克隆或“打包”然后与脚本一起移动,这样我就知道它可以在我使用它的任何设备上运行,并且无论将来有什么更新都可以继续运行? Docker 容器可以工作 - 但我很确定它对于 Pi Zero 来说太大了......

我知道 venv,但我不确定这是否可以在设备之间“复制和粘贴”。同样,理想情况下,我想在我的 PC 上创建代码,并且能够将 python 文件复制到另一台设备并知道它会在任何地方运行......rant> :)

解决方法

编写一些适用于任何 Python 环境的代码,并会继续做任何更新是无望的,除了非常琐碎的代码(print ('Hello') 应该给出相同的结果,无论 Python 版本如何,但不是很有趣)。>

AFAIK,在 Python Packaging User Guide 的意义上,唯一合理的方法是打包您自己的代码。打包将管理依赖项和 Python 版本,因此如果您可以使用一些 /path/to/python -m pip install 安装它(对于没有 venv 的 Windows,分别使用 py -x -m pip install),那么它应该与用于安装的相同 python 一起使用.

它确实需要一些初步的工作来理解 Python 打包和构建包,但是在新环境中安装应用程序时,它应该会为您省去一些麻烦……如果您希望能够拥有各种需要潜在不兼容的 Python 应用程序版本的库,venv 绝对是解决方案:您构建一个 venv,在其中安装您自己的包,并使用正确的版本准确找到您需要的依赖项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。