setuptools包含构建中的dist /文件夹

时间:2010-09-28 19:54:50

标签: python setuptools distutils

我使用setuptools创建并将sdist包上传到PyPI。

然而每次我运行python setup.py sdist时,它都包含dist /文件夹及其内容,我不想要。当我使用distutils时,这种行为不会发生。

这是我的文件结构:

/
-myModule/
--__init_.py,
-- ...
-docs/
-examples/
-dist/
setup.py

这也是我的svn trunk root。这是我的setup.py

import ez_setup
ez_setup.use_setuptools()

from setuptools import setup, find_packages
setup(name='mymodule',
    version='1.0',
    license='gpl',
    description='blahn',
    author='me',
    author_email='myemail',
    url='http://code.google.com/p/mymodule/',
    packages= find_packages(),
    install_requires = [
        'numpy>=1.3.0',
        'scipy>=0.7.1',
        'matplotlib>=1.0.0'
        ],
    )

当看到此输出时,表示问题

python setup.py sdist
...
making hard links in mwavepy-1.0...
hard linking MANIFEST.in -> mwavepy-1.0
hard linking ez_setup.py -> mwavepy-1.0
hard linking setup.py -> mwavepy-1.0
hard linking dist/mwavepy-1.0.tar.gz -> mwavepy-1.0/dist
hard linking dist/mwavepy-1.0.win32.exe -> mwavepy-1.0/dist
hard linking dist/mwavepy-1.0.zip -> mwavepy-1.0/dist
hard linking doc/generate_docs.py -> mwavepy-1.0/doc
hard linking doc/mwavepy.calibration.html -> mwavepy-1.0/doc
hard linking doc/mwavepy.calibrationAlgorithms.html -> mwavep
...

3 个答案:

答案 0 :(得分:1)

尝试删除find_packages()语句并将其替换为

setup(
    ...
    packages = ['myModule'],
    package_dir = {'myModule' : 'myModule_path'},
    ...)

答案 1 :(得分:1)

您也可以将参数传递给find_packages()

setup(
    #...
    packages= find_packages(exclude='dist'),
    # ...
)

答案 2 :(得分:1)

这发生在我身上,直到我跑svn rm dist/foo.tar.gz,然后它再也没有硬连接,并且不会产生tarball。 setuptools的文档确实提到了基于文件是在CVS还是SVN控制下的不同行为:

  

include_package_data

     

如果设置为True,则告诉setuptools自动包含any   它在包目录中找到的数据文件也是如此   在CVS或Subversion控件下,或由您的指定   MANIFEST.in文件。