setuptools включает папку dist / в сборку - PullRequest
1 голос
/ 28 сентября 2010

Я использую setuptools для создания и загрузки пакета sdist в PyPI.

однако каждый раз, когда я запускаю python setup.py sdist, он включает в себя папку dist / и ее содержимое, которое мне не нужно. это поведение не происходит, когда я использую distutils.

вот моя файловая структура:

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

это также мой корень ствола SVN. вот мой 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 ]

1 голос
/ 14 октября 2010

В качестве альтернативы вы можете передать аргумент find_packages():

setup(
    #...
    packages= find_packages(exclude='dist'),
    # ...
)
1 голос
/ 23 декабря 2014

Это происходило со мной, пока я не запустил svn rm dist/foo.tar.gz, а затем он больше не был жестко связан и не был в полученном архиве.В документации для setuptools упоминается другое поведение в зависимости от того, находится ли файл под контролем CVS или SVN:

include_package_data

Если установлено значение True, это говорит setuptoolsдля автоматического включения любых файлов данных, которые он найдет в ваших каталогах пакетов, которые находятся под управлением CVS или Subversion или которые указаны в вашем файле MANIFEST.in.

1 голос
/ 14 октября 2010

Попробуйте удалить find_packages() оператор и заменить его на

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