打包python项目 - 将“插件”添加到PYTHONPATH

时间:2015-12-18 23:46:40

标签: python python-2.7

我是python包装的新手,并且外部要求某些插件位于PYTHONPATH环境变量中以便正确运行。

是否可以/建议使用以下目录结构来完成此操作?

./setup.py ./plugin1.py ./plugin2.py ./mypackage/__init__.py ./mypackage/mypackage.py

因此,安装后,它将安装到:

%PythonInstallDir%/Lib/site-packages/mypackage-0.0.1-py2.7.egg

并包含文件:

%PythonInstallDir%/Lib/site-packages/mypackage-0.0.1-py2.7.egg/plugin1.py %PythonInstallDir%/Lib/site-packages/mypackage-0.0.1-py2.7.egg/plugin2.py %PythonInstallDir%/Lib/site-packages/mypackage-0.0.1-py2.7.egg/mypackage/__init__.py %PythonInstallDir%/Lib/site-packages/mypackage-0.0.1-py2.7.egg/mypackage/mypackage.py

这可能/推荐吗?如果是这样,您将如何创建setup.py来实现此输出?

1 个答案:

答案 0 :(得分:0)

如果您提供脚本plugin1.pyplugin2.py,则可以通过scripts参数添加脚本。您分发的包是使用packages参数定义的,并且应列出所有具有__init__.py的目录,如此

setup(
    ...,
    scripts=['plugin1.py', 'plugin2.py'],
    packages=['mypackage', 'mypackage.mysubpackage'],
    ....
)

setup.py中处理外部包(例如来自PyPI)的依赖关系的正确方法是在install_requires中定义setup(...)参数,例如< / p>

setup(
    ...,
    install_requires=['numpy'],
    ....
)

我建议您查看PythonHosted.org上的tutorial或distutils包的documentation