我是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来实现此输出?
答案 0 :(得分:0)
如果您提供脚本plugin1.py
和plugin2.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。