试图在ubuntu中的jenkins上运行python代码
全部 我最近开始与Jenkins合作,试图用Jenkins管道取代cronjob。我对编程术语真的有点了解。我从stackoverflow的问题中学到了什么。所以,如果你们需要更多的信息,我会非常感谢你们使用简单的英语 因此,我安装了Jenkins的最新版本,并推荐了插件,以及我发现对python运行有用的所有插件 后来,我搜索了stackoverflow和其他网站来完成这项工作,但我所能做的就是试图在ubuntu中的jenkins上运行python代码,python,pandas,jenkins,anaconda,Python,Pandas,Jenkins,Anaconda,全部 我最近开始与Jenkins合作,试图用Jenkins管道取代cronjob。我对编程术语真的有点了解。我从stackoverflow的问题中学到了什么。所以,如果你们需要更多的信息,我会非常感谢你们使用简单的英语 因此,我安装了Jenkins的最新版本,并推荐了插件,以及我发现对python运行有用的所有插件 后来,我搜索了stackoverflow和其他网站来完成这项工作,但我所能做的就是 #!/usr/bin/env python from __future__ import pri
#!/usr/bin/env python
from __future__ import print_function
print('Hello World')
它成功了
目前,Jenkins正在Ubuntu 16.04上运行,我正在使用anaconda3的python(~/anaconda3/bin/python)
当我尝试运行稍微复杂一点的python代码时(我指的是导入熊猫),它会给我导入错误
到目前为止,我所尝试的是
python pth/to/myScript.py
或python3 pth/to/myScript.py
在shell中使用它们<在本例中,code>python和python3
只是一种标签,使用环境变量PATH
指向正确的可执行文件
通过安装anaconda3,您将添加一个带有pandas和大量其他预装软件包的解释器。如果你想使用它,你需要告诉你的shell或Jenkins。如果import
给您一个错误,那么您可能使用了不同的解释器或不同的python环境(但这超出了本文的范围)
回到您的脚本
在堆栈溢出回答之后,您将看到所有的行#/usr/bin/env-python
的作用是确保在Ubuntu的环境路径上使用第一个python解释器。几乎可以肯定的是,这不是你用anaconda3安装的。它很可能是ubuntu发布的默认python 2。如果您想确定哪个解释器正在运行您的脚本,请不要将“Hello World”放在里面:
#!/usr/bin/env python
import sys
print(sys.executable) # this line will give you the exact path to the interpreter
print(sys.version) # this one will give you the version
好的,那怎么办?
那么,使用正确的解释器运行脚本。删除#/usr/bin/env python
从您的文件中删除,如果您有管道,请添加:
sh "/home/yourname/anaconda3/bin/python /path_to_python_file/myFile.py"
它极有可能解决这个问题。如果你想在不同的机器上使用这个python文件,你不需要在里面硬编码你的用户名,这也是非常灵活的
既然“hello world”可以工作,我相信使用anaconda3的python不是问题
你的假设是错误的
有多种方法可以解决这个问题,但归根结底都是使用正确的python解释器。通常在ubuntu中,你至少会有两个解释器。一个用于Python2,一个用于python3,您将通过调用python pth/to/myScript.py
或python3 pth/to/myScript.py
在shell中使用它们<在本例中,code>python和python3
只是一种标签,使用环境变量PATH
指向正确的可执行文件
通过安装anaconda3,您将添加一个带有pandas和大量其他预装软件包的解释器。如果你想使用它,你需要告诉你的shell或Jenkins。如果import
给您一个错误,那么您可能使用了不同的解释器或不同的python环境(但这超出了本文的范围)
回到您的脚本
在堆栈溢出回答之后,您将看到所有的行#/usr/bin/env-python
的作用是确保在Ubuntu的环境路径上使用第一个python解释器。几乎可以肯定的是,这不是你用anaconda3安装的。它很可能是ubuntu发布的默认python 2。如果您想确定哪个解释器正在运行您的脚本,请不要将“Hello World”放在里面:
#!/usr/bin/env python
import sys
print(sys.executable) # this line will give you the exact path to the interpreter
print(sys.version) # this one will give you the version
好的,那怎么办?
那么,使用正确的解释器运行脚本。删除#/usr/bin/env python
从您的文件中删除,如果您有管道,请添加:
sh "/home/yourname/anaconda3/bin/python /path_to_python_file/myFile.py"
它极有可能解决这个问题。它还非常灵活,如果您想在其他机器上使用此python文件,就不会在其中硬编码用户名。谢谢!!这真的帮了我大忙!!为了便于将来参考,如果代码要在shell中执行,请删除sh。如果代码要在管道中执行,则sh之后的所有内容都应在“”中(引号)。谢谢!!这真的帮了我大忙!!为了便于将来参考,如果代码要在shell中执行,请删除sh。如果代码要在管道中执行,则sh之后的所有内容都应在“”中(引号)。