setup.py 安装仅显示文件夹

setup.py install show only the folders

我正在尝试在 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,
    )

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

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

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

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(), 自动使用目录中的所有包。

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

from setuptools import setup, find_packages

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

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

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