2015-06-29 88 views
0

我在Python中编写了一个小型的命令行工具。我还创建setup.py脚本:如何在Windows上安装Python脚本?

try: 
    from setuptools import setup 
except ImportError: 
    from distutils.core import setup 

config = { 
    'name': 'clitool', 
    'author': 'aa', 
    'author_email': 'ww', 
    'version': '1.0-rc', 
    'install_requires': ['nose'], 
    'packages': [], 
    'scripts': ['clitool'] 
} 

setup(**config) 

当我打电话:

setup.py install 

我的脚本复制到C:\Python34\Scripts路径。此路径是在PATH变量中,但Windows当我试图从一些猪病开始写我的clitool:

"clitool" not recognized as an internal or external command 

它可以从任何目录下运行,只能从C:\Python34\Scripts文件与EXE扩展名。
但我的脚本被复制为一个没有扩展名的文件,在Windows中它不会运行它。

+0

你是从Windows资源管理器或CMD.EXE运行呢?你尝试过'clitool.py'吗?它应该有一个'.py'的扩展名(虽然也有其他的) – cdarke

+0

@cdarke,'clitool.py'是有效的,但我想写这个工具,因此可以在没有.py扩展名的情况下调用这个工具 – Valeriy

+0

为什么?在Windows上(与UNIX/Linux/OS X不同),除非设置文件扩展名,否则shell(Windows资源管理器,cmd.exe,powershell)无法确定文件的类型。 shell使用它作为Windows注册表的查找来发现哪个程序应该运行。有一个默认的,但你必须写一个'.cmd'文件来运行你的python。那是你要的吗? – cdarke

回答

0

解决方案:

try: 
    from setuptools import setup 
except ImportError: 
    from distutils.core import setup 

config = { 
    'name': 'clitool', 
    'author': 'aa', 
    'author_email': 'ww', 
    'version': '1.0-rc', 
    'install_requires': ['nose'], 
    'packages': [],  
    'entry_points' : { 
     'console_scripts': ['clitool=clitool.cli:main'], 
    } 
} 

setup(**config)