2015-01-13 119 views
2

如何指定Setuptools模块在安装期间应该可用,但未安装用于运行时?Python模块:在安装过程中使用但未安装

我已经制作了我的Python发行版使用的扩展命令(在这种情况下,它自动生成版本元数据),并且该模块包含在项目树中。

foo-project/ 
    setup.py 
    MANIFEST.in 
    foo/ 
     __init__.py 
     bar.py 
    version_info.py 

要运行setuptools的命令(如egg_infodevelop)时,version_info模块由setup导入。因此该文件version_info.py需要成为源代码分发的一部分。

但是将该文件放入源代码发行版(默认情况下?)会自动将其包含在任何二进制发行版中,例如bdist_wheelbdist_dumb。这是错误的,因为该文件在运行时不需要,并且不应该被安装。

如何指定该文件是安装程序命令的源代码发行版中需要的Python模块,但不是要安装的?

回答

3

您可以在MANIFEST.in file中包含来源分布文件;这些文件包含在构建包含setup.py文件的源代码发布时。

不要在data_filespackage_datapy_modules文件,它不会被包含在二进制分发(就像setup.py不会)。