我想利用其他人的python实用工具foobartools,它的本机环境是linux。Foobartools是纯python,所以它没有理由不能在Windows上使用,我就是这样。在
在他们的setup.py
中,他们使用的是老式的scripts=['bin/foobar'],
。在
运行pip install -e b:\code\foobar
会在%pythonhome%\Scripts
中创建一个名为foobar
的文件,但是即使脚本在PATH中,Windows也不知道它。要使用它,我需要制作一个@python %pythonhome%\scripts\foobar
批处理文件。这是可行的,但不是最优的(例如,ctrl-c处理很难看)。在
我知道如果我将更新的推荐的entry_points语法添加到设置.pypip将在Windows上自动创建Scripts\foobar.exe
(我可以丢弃批处理文件)。在Linux上Scripts\foobar
保持不变,每个人都很高兴。在
entry_points = {
'console_scripts': ['foobar = foobartools:main'],
}
我不知道如何处理等式的右边,foobartools:main
。如何打电话bin/foobar
?foobartools模块没有一个与bin脚本对应的可调用函数或模块,bin脚本相对复杂。在
我想尽可能少地修改项目,这样a)提交的补丁有更好的机会被上游接受,b)如果上游仍然不感兴趣,我可以做更少的工作来跟上它。在
[update]现有的源树结构:
^{pr2}$
我得到了一个有效的脚本\foobar.exe文件,但它改变的代码比我希望的要多。我只想通过一些调整设置.py,或者至少不会在上游模块内部造成混乱。我对这件事还不太了解,不知道怎么会不会碍事。在
(1)移动
bin/foobar
>;foobartools/foobar_cli.py
(2) 在设置.py,注释掉
#scripts=...
并添加:[稍后]对同一个核心理念的精化,意味着我的肥脚不在主营业务领域:
{>
> (2) 将空的
__init__.py
添加到同一文件夹(3)
console_scripts': ['foobar = foobar_cli.foorbar:main'],
相关问题 更多 >
编程相关推荐