sys.path.append() 是一个好的解决方法吗?

Is sys.path.append() a good workaround?

我看到我的一些同事使用以下解决方法来导入外部 python 模块(无需安装)。

import sys

sys.path.append(<PATH_TO_MODULE>)
import <module>
sys.path.remove(<PATH_TO_MODULE>)

我认为这不是一个好方法,但是 "it works"。 我应该建议他们做什么而不是下面的代码,为什么?

谢谢!

另一种方法是将模块的路径附加到 PYTHONPATH:

export PYTHONPATH="${PYTHONPATH}:/path/to/your/module/"

这样一来,您的源代码中就没有任何硬编码,只要有任何更改,您只需将新路径导出到 PYTHONPATH

听起来好像您的同事没有将 virtual environments 变成 运行 python,而是试图避免混淆主要的 python 模块。

所以我建议他们开始将他们的关注点和项目分离到单独的虚拟环境中,他们不需要担心安装模块。

另请参阅 conda 环境和实现相同目标的其他替代方案