如何在Windows上安装Python脚本?

3

我用Python编写了一个小型的命令行实用程序,并创建了setup.py脚本:

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 变量中,但当我尝试从某个目录启动我的 clitool 时,Windows 写道:

"clitool" not recognized as an internal or external command

可以从任何目录运行,只需运行扩展名为exe的C:\Python34\Scripts文件。
但我的脚本被复制为没有扩展名的文件,在Windows中无法运行。


你是在Windows资源管理器或cmd.exe上运行吗?你尝试过 clitool.py 吗?它应该有一个 .py 的扩展名(虽然也可能有其他的)。 - cdarke
@cdarke,clitool.py是可以工作的,但我想写成这个实用程序可以在没有.py扩展名的情况下被调用。 - Valeriy
为什么?在Windows上(不像UNIX/Linux/OS X),shell(Windows资源管理器,cmd.exe,powershell)无法判断文件类型,除非您设置其文件扩展名。 shell将其用作查找Windows注册表以发现应运行哪个程序的依据。有一个默认值,但您必须编写.cmd文件来运行Python。这是您想要的吗? - cdarke
不,我想了解像 django-admin 这样的实用工具是如何工作的。 - Valeriy
1
此链接中的 entry_points 示例可能可行。 - xuhdev
1个回答

4

解决方案:

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接