【问题标题】:How do I tell distutils about packages in subdirectories?我如何告诉 distutils 子目录中的包?
【发布时间】:2013-11-30 03:33:21
【问题描述】:

我有一个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 安装软件包?

【问题讨论】:

    标签: python github distutils2


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      • 2010-11-17
      • 1970-01-01
      • 2012-01-12
      • 2015-08-26
      • 1970-01-01
      • 2019-12-25
      相关资源
      最近更新 更多