【发布时间】:2019-02-21 19:55:04
【问题描述】:
我创建了一个如下所示的 python 包。该软件包主要用于在 docker 容器内的 jenkins 管道中运行阶段。因此,我在 github 中创建了一个存储库并创建了一个 dockerfile,其中包含克隆存储库并在该包上执行 pip install 的步骤。然后我构建了 docker 镜像。
jenkins_pipeline_pkg/
| - jenkins_pipeline_pkg/
| - __init__.py
| - config/
| - config.yaml
| - scripts/
| - pre_build.py
| - build.py
| - setup.py
我在使用 dockerfile 创建的 docker 容器内的包上执行了 pip install。 setup.py 如下所示。
#!/usr/bin/env python
from setuptools import setup
setup(name='jenkins_pipeline_pkg',
version='0.1',
description='Scripts for jenkins pipeline',
url='<private repo url>',
author='<name>',
author_email='<email>',
packages=['jenkins_pipeline_pkg'],
zip_safe=False,
entry_points={
'console_scripts': [
'pre-build = jenkins_pipeline_pkg.pre_build:main',
'build = jenkins_pipeline_pkg.build:main',],
}
)
我在包上运行了 pip install。它安装了~/.local/bin 中entry_points 中提到的可执行文件。然后我尝试通过不更改目录~/.local/bin(只是说我从/home/user 执行)从其他任何地方执行可执行文件。而且 bash 自动完成也不显示预构建命令。我不知道我在这里错过了什么。
【问题讨论】:
-
尝试在 /use/bin 中为可执行文件创建链接或在 $PATH 中包含 ~/.local/bin。希望这会有所帮助
-
添加了导出路径=~/.local/bin:$PATH。有效。谢谢。
-
太棒了。不客气。我将复制粘贴与答案相同。
-
有没有办法为每个 pip 安装脚本的用户自动执行此操作?