setup.py install只显示文件夹

时间:2016-04-14 15:06:27

标签: python setup.py pypi

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

2 个答案:

答案 0 :(得分: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(),自动使用目录中的所有包。

答案 1 :(得分:0)

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

from setuptools import setup, find_packages

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

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

因为我的项目结构有多个子目录包,所以我必须在setup.py中包含所有这些,这就是为什么我的第一次尝试失败了。 如上所述解决了我的问题而没有写下我所有的包名