【发布时间】:2023-11-18 22:07:01
【问题描述】:
如何配置 setup.py 以便它不会尝试覆盖已经存在的脚本?或者,如果编写脚本失败,至少完成包安装的其余部分。我正在为my setup.py 使用 setuptools。 setup.py 的相关部分是这样的:
entry_points = {
'console_scripts' : [
'green = green:main', # <-- The one I have problems with
'green%d = green:main' % sys.version_info[:1], # green2 or green3
'green-%d.%d = green:main' % sys.version_info[:2], # green-3.4 etc.
],
},
my setup.py 既有版本控制的脚本(python 的版本包含在脚本名称中)也有非版本控制的脚本。在 OS X 上,我使用 2.7 的系统 python,它需要超级用户权限才能运行 pip (sudo pip ...),这会导致脚本以 root 所有权安装在 /usr/local/bin 下。然后,当我尝试在通过 homebrew 安装的具有用户权限的 python 3.4 下安装时,它会尝试(并且失败)覆盖/usr/local/bin 中的未版本控制脚本。我不介意它不能覆盖脚本文件,我确实介意 pip 安装失败并使安装一半的软件包处于奇怪、时髦的状态。
我希望能够指示 setup.py 如果脚本已经被其他东西安装,则不要尝试安装它,或者至少忽略错误并继续安装其余部分(如果没有)没有权限覆盖脚本。
【问题讨论】:
标签: python setuptools pypi