python - 是否可以让用户不 pip install modules 而是包含在不同文件夹中使用的模块然后导入?
问题描述
我想知道我是否可以在同一目录中创建一个包含 python 模块所有资产的文件夹的 python 脚本,所以当有人想使用它时,他们不必 pip install 模块,因为它会从目录。
解决方案
是的,你可以,但这并不意味着你应该这样做。
首先,问问自己谁应该使用该代码。
如果您打算将其提供给消费者,最好使用 py2exe 之类的工具并创建包含所有模块且不允许更改代码的可执行文件。
如果您打算与其他开发人员共享它,您可能需要查看虚拟环境和 requirements.txt 文件。
共享模块是个坏主意的原因有很多:
- 以后更难更新模块,至少不升级整个项目。
- 它在版本控制上使用了更多空间,这可能会在具有数百个模块和分支的大型项目中产生问题
- 这可能是非法的,因为某些许可证明确禁止将其代码包含在您的源代码中。
- 某些模块的
pip install
可能会根据操作系统版本或安装的软件包做不同的事情。你机器上的模块在别人的机器上可能不是最理想的,在某些情况下甚至可能无法工作。
可能还有更多我现在想不到的。
我看到这是不可避免的唯一情况是模块不支持运行应用程序的 python 实现。该模块已更改,其源代码与其余库一起放在 lib 文件夹下。
推荐阅读
- unity3d - 从 Google Play 外部安装时,Google Play 游戏未获得授权
- r - 如何在 R 中填写 Stargazer 中缺失的列?
- apache-kafka - Confluent Schema Registry 无法连接到 Kafka 容器
- r - 如何更改 R Shiny 中可变单选按钮选项的颜色?
- textures - 如何在 MTKView 中渲染 CGImage,同时保持合理的色彩空间映射?
- html - Bootstrap 的网格布局没有将图像定位到文本的右侧。我试过`img-fluid`但没用
- html - 切换开关(HTML + CSS)工作/不工作
- node.js - 在猫鼬中将项目推送到具有数组属性的对象数组中
- python - 为什么 wxPython 没有安装
- javascript - 使用 setAttribute() 将 onkeyup 函数添加到函数中带有文本参数的 DOM 元素