使模块相关的python代码在没有模块的机器上运行

时间:2017-07-08 11:18:46

标签: python

我刚刚完成了漂亮的代码。它使用了一些未预装在python中的模块。现在的问题是,为了使其运行,用户必须安装系统所需的所有模块 如何让用户免于这种痛苦?
有没有办法只计算出正在使用的模块中的那些函数,并以某种方式将它们与我写的代码打包在一起?
我现在有一件事就是编写一个辅助shell脚本来减轻用户的工作量。但是,再次安装模块可能会给各种系统带来痛苦和错误。我无法处理。 请给我一些建议 谢谢

编辑1:我不担心安装整个库的复杂性。我正在研究用于python的cv2模块(后台在C / C ++中实现)我不能要求用户在一天结束时安装整个库我只是使用了一堆函数来自它。
PS:我花了几个小时来安装opencv

1 个答案:

答案 0 :(得分:0)

假设你有模块xyz

通常你会用pip

安装它
pip install xyz

由于某些原因,您无权在其运行的环境中执行此操作,因此请将github中的xyz存储库克隆/下载到您的应用程序中(最好是作为git子模块)

xyz repo可能看起来像这样。

XYZ repo (dir)
- xyz (dir) <-- this is where the actual module is
- readme.md
- setup.py

现在您的应用程序目录如下所示:

My app (dir)
- XYZ repo (dir)
- __init__.py
- myapp.py

为了能够在myapp.py中导入xyz,你需要在XYZ Repo的模块目录中添加一个符号链接

ln -s XYZ\ Repo/xyz xyz

您的应用程序现在看起来像这样:

My app (dir)
- XYZ repo (dir)
- xyz
- __init__.py
- myapp.py

现在您可以在代码中导入xyz。

免责声明:这只适用于纯python库,如果它具有c依赖性,则需要在安装期间构建它们,并且您需要访问pip或至少自己运行构建脚本。 此外,xyz包的任何依赖项必须以相同的方式安装