我无法弄清楚如何使setup.py添加一个纸条给用户/bin或/usr/bin或什么的。
例如,我想添加一个myscript.py,/usr/bin以便用户可以myscript.py从任何目录调用。
我无法弄清楚如何使setup.py添加一个纸条给用户/bin或/usr/bin或什么的。
例如,我想添加一个myscript.py,/usr/bin以便用户可以myscript.py从任何目录调用。
Answers:
Python文档在“安装脚本”部分下对其进行了说明。
脚本是包含Python源代码的文件,旨在从命令行启动。
setup(...,
scripts=['scripts/xmlproc_parse', 'scripts/xmlproc_val']
)
如前所述这里,脚本旁边,有一个entry_points机制,这是更多的跨平台。
使用entry_points您选择的功能连接命令行工具名称,而scripts可以指向任何文件(例如,shell脚本)。
bin目录(在Mac上/opt/local/Library/Frameworks/Python.framework/Versions/3.1/bin/),但是我仍然无法运行它们。
考虑使用console_scripts:
from setuptools import setup
setup(name='some-name',
...
entry_points = {
'console_scripts': [
'command-name = package.module:main_func_name',
],
},
)
main_func_name主模块中的主要功能在哪里。command-name是将其保存在/ usr / local / bin /中的名称(通常)
pip3 install --editable .,它将安装到命令/home/{username}/.local/bin。如果运行sudo pip3 install --editable .,它将命令安装到/usr/local/bin/
/Library/Frameworks/Python.framework/Versions/3.7/bin对我而言),但不会安装在/usr(我pip和所在的python位置)下
有两种方法可以从setuptools和PyPI基础结构中获取有效的命令行工具:
如果您愿意构建和安装整个python软件包,这就是我的处理方式:
setup(name='myproject',author='',author_email='',scripts=['bin/myscript.py'])
mkdir binbin目录(并确保其可执行!)cd 再次进入包含setup.py的目录,然后通过输入安装整个python包 python setup.py installmyscript。原谅我的天真,但是为什么在bin目录中添加源代码还是有问题的?
python setup.py install将my_project安装到中/usr/local/bin。要删除安装,请运行python setup.py install --record files.txt,它会生成files.txt,然后通过以下rm