2015-06-29 89 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)