我正在尝试分发一个供公共使用的CLI工具。我的代码包含一个可执行文件(用golang编写)和一个助手python脚本(由可执行文件使用)。你知道吗
我最初的方法是使用这个从python调用可执行文件,其中main是cli命令的入口点。你知道吗
import os
import subprocess
import sys
def main():
dst = os.path.dirname(os.path.realpath(__file__))+'/golangexec'
arg_list = [dst,"myclitool"]
cmd_args = sys.argv[1:]
args = arg_list + cmd_args
subprocess.call(args)
return
`
我的包裹是这个
project
│ setup.py
│
└───myclitool
│ │ golangexec
│ │ __init__.py
| | pyhelper.py
| | run.py
其中setup.py
是:
from setuptools import setup
setup(
name='mypkg',
packages=['myclitool'],
version='0.1',
entry_points='''
[console_scripts]
mycli=myclitool.run:main
'''
)
但是,这不会将我的可执行文件与其余文件安装在同一位置。你知道吗
我试图将所有内容都放在包数据中,但在使用子进程运行exe时遇到权限拒绝错误。你知道吗
我做错什么了?你知道吗
npm不是pythonic的解决方案,但是对于有相同问题的人来说,npm允许在
package.json
文件中有一个bin
参数,您可以直接链接您的可执行文件。你知道吗相关问题 更多 >
编程相关推荐