使用 Python 3.7 在 Jupyter notebook 中编写的相同程序在其他地方无法运行

The same program written in Jupyter notebook with Pyhon 3.7 doesn't work somewhere else

想象一下下面的情况。一定要有简单的解释。

我有一个用 Jupyter notebook 编写的程序并使用 Python 3.7。执行程序时没有错误,并且可以在两台 PC 计算机上运行。正如我记得那里只有 Python 3.7(并添加像 matplotlib 等所有需要的东西)。

然后在其他计算机上 Python 3.8 相同的程序给我一个错误。为什么?

我又拿了两台 PC 删除了所有 Python 安装并安装了 3.7 3.8 3.9 3.10 Python(尝试了每一个),但我无法无误地执行程序。为什么会这样?每次都需要通过 pip 等以正确的方式安装所有扩展,如 matplotlib、numpy、scipy...Windows 中的路径始终正确。

在我看来,在那两台计算机上,程序运行正常的只有 Python 3.7(但我不能 100% 确定没有安装以前版本的 Python) 程序有效。 Python 的任何其他安装或更新都会使该程序出错。

我唯一应该做的是 100% 重置 Windows 并进行新鲜和最新的 Python 灌注(Jupyther 等)并检查错误是否存在。但我想知道是什么导致了问题,而不是每次都刷新我的所有 Windows 安装。

当我正在上同样的课程时,这个问题就更有趣了 并使用 Internet 和浏览器将它们放到虚拟 Jupyther 中,它们始终可以正常工作,没有任何错误,而且肯定有新闻 Python 引擎我猜不是 3.7.

您是否尝试在这些计算机上执行“pip freeze”或“conda list”(例如使用 Ananconda Powershell)来验证您使用的所有库的版本是否相同?

查看屏幕截图上的错误,我敢打赌问题不是来自您的 Python 版本,而是更多来自前两台 PC 上安装的 matplotlib 的更高版本,这使得第三台一个(可能是旧版本的 matplotlib)不支持给定的参数。

只需尝试执行:

(base) PS C:\XXX\Python> conda list matplotlib

并且应该获取每台 PC 上安装的 matplotlib 版本,如下所示:

# packages in environment at C:\XXX\Miniconda3:
#
# Name                    Version                   Build  Channel
matplotlib                3.4.2                    pypi_0    pypi
matplotlib-inline         0.1.2                    pypi_0    pypi

如果它们不同,这可能就是问题所在。