我使用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
...
答案 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文件。