首页 > 解决方案 > 是否可以让用户不 pip install modules 而是包含在不同文件夹中使用的模块然后导入?

问题描述

我想知道我是否可以在同一目录中创建一个包含 python 模块所有资产的文件夹的 python 脚本,所以当有人想使用它时,他们不必 pip install 模块,因为它会从目录。

标签: python

解决方案


是的,你可以,但这并不意味着你应该这样做。

首先,问问自己谁应该使用该代码。

如果您打算将其提供给消费者,最好使用 py2exe 之类的工具并创建包含所有模块且不允许更改代码的可执行文件。

如果您打算与其他开发人员共享它,您可能需要查看虚拟环境和 requirements.txt 文件。

共享模块是个坏主意的原因有很多:

  1. 以后更难更新模块,至少不升级整个项目。
  2. 它在版本控制上使用了更多空间,这可能会在具有数百个模块和分支的大型项目中产生问题
  3. 这可能是非法的,因为某些许可证明确禁止将其代码包含在您的源代码中。
  4. 某些模块的pip install可能会根据操作系统版本或安装的软件包做不同的事情。你机器上的模块在别人的机器上可能不是最理想的,在某些情况下甚至可能无法工作。

可能还有更多我现在想不到的。

我看到这是不可避免的唯一情况是模块不支持运行应用程序的 python 实现。该模块已更改,其源代码与其余库一起放在 lib 文件夹下。


推荐阅读