【问题标题】:setup.py install show only the folderssetup.py install 仅显示文件夹
【发布时间】:2016-08-06 05:50:13
【问题描述】:

我正在尝试在 python 中为 pypi 创建一个库,所以我创建了 setup.py 文件。 我在查看了一些教程后上传了它,但是当我尝试通过 pip install pyravendb 安装它时,我只得到一个空文件夹。

尝试直接从python setup.py install.安装 再次只得到一个 pyravendb 空文件夹。

我的 setup.py 文件

from distutils.core import setup

    setup(
        name='pyravendb',
        packages=['pyravendb'],
        version='1.0.1',
        description='This is the official python client for RavenDB document database',
        author='Idan Haim Shalom',
        author_email='my email',
        url='https://github.com/IdanHaim/RavenDB-Python-Client/',
        download_url='https://github.com/IdanHaim/RavenDB-Python-Client/tarball/1.0.1',
        keywords='ravendb pyravendb database',
        license='GNU',
        requires=
        [
            'pycrypto',
            'requests',
            'Inflector'
        ],
        zip_safe=False,
    )

【问题讨论】:

标签: python setup.py pypi


【解决方案1】:

您的项目似乎具有以下结构:

pyravendb/
  connection/
  custom_exceptions/
  d_commands/
  data/
  hilo/
  store/
  tests/
  tools/

将您的 setup.py 文件添加到项目根文件夹并更改 packages 以包含您想要包含在分发中的每个模块/文件夹。您可以明确声明要打包的所有模块,如下所示:

packages=[
        'pyravendb',
        'pyravendb.connection',
        'pyravendb.custom_exceptions',
        'pyravendb.d_commands',
        'pyravendb.data',
        'pyravendb.hilo',
        'pyravendb.store',
        # and so on....
],

或者,您可以使用setuptools 并导入find_packages,然后使用packages=find_packages(), 自动使用目录中的所有包。

【讨论】:

    【解决方案2】:

    好的,我设法找到了正确的答案。就像 PRNDL 建议的那样,但工作量要少一些。

    from setuptools import setup, find_packages
    

    并在包中添加 find_packages() 方法来查找我所有的包

    setup(
        name='pyravendb',
        packages=find_packages(),
    

    因为我的项目结构有多个子目录包,所以我必须将它们全部包含在我的 setup.py 中,这就是我第一次尝试失败的原因。 像上面那样做解决了我的问题而没有写下我所有的包名

    【讨论】:

    • 我的答案中最初包含 find_packages(),但您使用的是 distutils 并且不确定是否有必要。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多