精心设计的python模块会如何进行自我安装?

时间:2018-12-17 21:23:48

标签: python-import

我有一个由其他人编写的python软件,它是1500行单文件模块,在底部有注释,说在那里插入了调用模块中的类的源代码。我希望对此进行改进,并希望以一种不错的标准方式进行,以使我的更改作为补丁可以被代码的维护者接受,并对其他人有用。

如果我愿意

python2 -c "import sys; print(sys.path)"
python3 -c "import sys; print(sys.path)"

看来我在Linux上安装的python期望模块位于/usr/lib/python2.7或/usr/lib/python3.5中。因此,发生在我身上的最基本的事情是编写一个带有“安装”目标的Makefile,该目标可以检测到版本号2.7和3.5,并将模块复制到适当的位置。

我猜想这不是最好的或最标准的方法,因为一方面它在Windows上不起作用。我应该以某种方式使用pip进行设置吗?我所见过的有关如何使用pip的示例似乎都假设您使用的是别人编写的代码,并且已经被某个中央存储库接受。

1 个答案:

答案 0 :(得分:1)

您可以使用pip完成此操作。使用以下内容制作一个setup.py文件:

from distutils.core import setup

setup(
    name='mypackage',
    version='0.1',
    packages=['mypackage'],
    license='Some license',
    long_description='Insert description'
)

这假定您的文件结构是这样的:

mypackage/
    mypackage/
        __init__.py
        myfile.py
    setup.py

然后在软件包目录中运行pip install -e .(开发安装)或仅运行pip install .(普通安装)。 它们之间的区别在于pip install -e不会将其复制到python目录中,而只是将其链接到那里,我想您是不需要的。