以下是我的setup.py。我的代码中没有使用setuptools中的任何内容,而且我的项目没有外部依赖项
#!/usr/bin/env python
from distutils.core import setup
setup(name='dots',
...
packages=['dots','dots.configs','dots.management','dots.utils','dots.test'],
scripts=['dots/dots.py']
)
当我运行python setup.py install
时,我得到以下内容
running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /Users/kevinlin/.virtualenvs/p-dots/bin/dots.py to 755
running install_egg_info <- why?
Removing /Users/kevinlin/.virtualenvs/p-dots/lib/python2.7/site-packages/dots-0.1-py2.7.egg-info
Writing /Users/kevinlin/.virtualenvs/p-dots/lib/python2.7/site-packages/dots-0.1-py2.7.egg-info
(p-dots)Kevins-MacBook-Pro-2% python setup.py install
running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /Users/kevinlin/.virtualenvs/p-dots/bin/dots.py to 755
running install_egg_info
Removing /Users/kevinlin/.virtualenvs/p-dots/lib/python2.7/site-packages/dots-0.1-py2.7.egg-info
Writing /Users/kevinlin/.virtualenvs/p-dots/lib/python2.7/site-packages/dots-0.1-py2.7.egg-info
我注意到安装了一个.egg-info文件
ls -dl /Users/kevinlin/.virtualenvs/p-dots/lib/python2.7/site-packages/dots*
drwxr-xr-x 10 kevinlin staff 340 May 4 11:36 /Users/kevinlin/.virtualenvs/p-dots/lib/python2.7/site-packages/dots
-rw-r--r-- 1 kevinlin staff 205 May 4 11:36 /Users/kevinlin/.virtualenvs/p-dots/lib/python2.7/site-packages/dots-0.1-py2.7.egg-info
为什么?
答案 0 :(得分:2)
有关于为Python 2.5添加setuptools到stdlib的讨论,然后是关于仅添加pkg_resource(setuptools的一部分)的讨论。各种原因使得没有发生。核心开发人员认识到setuptools是一个重要的第三方工具,并且接受了使用pure-distutils setup.py编写这个egg-info文件来安装项目的更改,以使setuptools和基于它的工具能够知道这些项目已经安装好了。
变更集:http://hg.python.org/cpython/rev/93344da76acd
票证:http://bugs.python.org/issue1459476
(我没有查看关于setuptools的2.5讨论的日期,所以我的第一句话可能是错的。理由仍然有效,请看门票。)