将Python模块安装为模块和脚本

时间:2013-12-08 22:01:46

标签: python installation distutils

说我写了模块foo.py

我希望安装过程将foo.py复制到prefix/lib/pythonX.Y/site-packages,以便可以由其他模块导入,还可以创建名为foo的符号链接(不是foo.pyprefix/bin/中指向foo.py

如何告诉distutils这样做?

1 个答案:

答案 0 :(得分:3)

如果您使用setuptools entry_points,则可以执行此操作。这是一个例子:

foo.py

def main():
    print "Hello world"

setup.py

from setuptools import setup

setup(
    name="foo",
    version = "0.1",
    py_modules=['foo'],
    entry_points = {
        'console_scripts': ['foo = foo:main']
    }
)

使用pip

等工具安装模块后的示例用法
$ foo
Hello world
$ python -c 'import foo; foo.main()'
Hello world