如何告诉distutils子目录中的包?

时间:2013-11-16 20:01:59

标签: python github distutils2

我有一个setup.py文件用于我正在处理的项目,需要提供几个尚未在奶酪店中发布的第三方软件包。其中一个是来自这个git存储库的'spine'和'pyguts'模块:

https://github.com/terrysimons/spine-python

通常我可以通过在我的setup.py文件中指定以下项目来安装gitgub中的东西(为清楚起见,省略了几行):

#! /usr/bin/python
# Encoding: UTF-8

from setuptools import setup, find_packages


setup(
    # More stuff in here...
    dependency_links=[
            'https://github.com/bitcraft/PyTMX/archive/master.zip#egg=PyTMX',
        ],
    install_requires=[
        'PyTMX',
        ],
)

但是,这只能起作用,因为PyTMX在存储库的根目录中有setup.py个文件。

如果我尝试为spinepyguts存储库执行类似操作,请执行以下操作:

#! /usr/bin/python
# Encoding: UTF-8

from setuptools import setup, find_packages

__version__ = '0.0.1'



setup(
    dependency_links=[
            'https://github.com/bitcraft/PyTMX/archive/master.zip#egg=PyTMX',
            'https://github.com/terrysimons/spine-python/archive/master.zip#egg=spine',
        ],
    install_requires=[
        'PyTMX',
        'spine',
        ],
)

然后当我运行python setup.py install时,distutils抱怨:

Searching for spine
Best match: spine [unknown version]
Downloading https://github.com/terrysimons/spine-python/archive/master.zip#egg=spine
Processing master.zip
error: Couldn't find a setup script in /tmp/easy_install-OXsH6T/master.zip

setup.py文件不在软件包存储库的根目录中时,如何安装distutils来安装软件包?

1 个答案:

答案 0 :(得分:0)

据我所知,这方面的方法是将包中的模块作为子目录包含在内,而不是安装它们。

显然,这意味着您无法直接从模块外部访问它们。不过,您仍然可以import my_module.my_submodule

当他们准备好与主模块分离时,只需为它们制作新的包。