5

我有一个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',
        ],
)

但是,这仅适用于PyTMXsetup.py文件位于存储库的根目录中。

spine如果我尝试为和存储库做类似的事情pyguts,就像这样:

#! /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',
        ],
)

然后 distutils 在我运行时抱怨python setup.py install

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 安装包?

4

1 回答 1

0

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

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

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

于 2015-11-30T08:23:46.520 回答