【发布时间】:2014-03-13 22:54:11
【问题描述】:
我是第一次在 python 中打包一个脚本。它既可以用作模块,也可以用作可执行文件,所以我发现我可以使用
entry_points = {
'console_scripts': [
'myscript = myscript:main',
],
}
在我的setup.py 中自动生成用户的python-x.x.x/bin 目录中的脚本。
我的python脚本以
结尾if __name__ == '__main__': main()
main() 解析命令行输入。
我使用命令打包了这个:
python setup.py sdist
然后将分布测试为:
easy_install dist/myscript-0.3.2.tar.gz
这会按预期在我的python-2.7.5/bin 中放置一个myscript 可执行文件。
但这不是:
pip install dist/myscript-0.3.2.tar.gz
任何想法为什么?我的目录树如下所示:
Root/
|-- MANIFEST.in
|-- README.rst
|-- dist
| `-- myscript-0.3.2.tar.gz
|-- myscript.egg-info
| |-- ...
|-- myscript.py
|-- setup.cfg
|-- setup.py
`-- test
|-- ...
而我的setup.py 大致如下:
import os
from setuptools import setup
def read(*paths):
"""Build a file path from *paths* and return the contents."""
with open(os.path.join(*paths), 'r') as f:
return f.read()
setup(
name='myscript',
version='0.3.2',
description='bla',
long_description=(read('README.rst')),
url='http://url',
license='LGPL',
author='Me',
author_email='me@me.com',
py_modules=['myscript'],
include_package_data=True,
classifiers=[
'Development Status :: 5 - Production/Stable',
'Intended Audience :: Developers',
'Natural Language :: English',
'License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)',
'Operating System :: OS Independent',
'Programming Language :: Python',
'Programming Language :: Python :: 2',
'Programming Language :: Python :: 2.7',
'Topic :: Software Development :: Libraries :: Python Modules',
],
install_requires=['Texttable'],
entry_points = {
'console_scripts': [
'myscript = myscript:main',
],
}
)
【问题讨论】:
标签: python python-2.7 pip setuptools easy-install