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