对于我的简单C库,我有一个使用ctypes
的简单Python包装器。我正在为我的图书馆写Makefile
。在install
目标下,我有:
install -m 644 mylib.py $(shell python3 -m site | grep $(PREFIX).*packages | cut -d \' -f2)/
这是我自己设想的。我不想使用distutils
或所有那些多个Python安装"解决方案"因为它们对我的简单要求太复杂了:一旦安装了.so
文件,我的库可以从Python访问的所有真正需要的是.py
接口是正确的{{ 1}} - 能够定位。所以,我想要制作一份简单的副本。
有人预见到我正在做的事情有什么问题吗?如果是这样,有更好的方法吗?
谢谢!
答案 0 :(得分:2)
通过使用设置工具并将源文件上传到pipy.org,世界上任何人都可以通过输入pip install <yourmodule>
来安装项目。
此外,碰巧想要使用你的库的大型Python项目只需要在一行中列出其名称,可以在requirements.txt文件中,也可以在setup.py
上。如果您的项目不是开源的,并且您不打算让“世界”访问它,那么distutils解决方案 - 不需要引号 - 允许您的项目从私有git存储库获取,甚至是一个热门程序Python“奶酪店”。
如果你绝对不关心使用正确的方法做什么,你可以在README上放一条简单的英文行告诉用户将你的“.py”文件复制到他喜欢的任何文件夹 - 安装不会像Python用户那样预期。
否则,只需要一个极简主义的setup.py文件,并且有一个make行python setup.py install
- 它肯定不会受到影响(你的库在使用多个软件包的大型项目中仍然缺乏可用性 - 所有那些项目需要可以安装pip)
极简主义setup.py
文件是两个班轮,可以在这里找到:
https://docs.python.org/2/distutils/examples.html#pure-python-distribution-by-module - 当然远非“复杂”。