Continuous integration Github操作CI:使PyCall意识到Julia ENV变量

Continuous integration Github操作CI:使PyCall意识到Julia ENV变量,continuous-integration,julia,github-actions,pycall,Continuous Integration,Julia,Github Actions,Pycall,我想设置一个Github action ci.yml文件,该文件安装Python和Julia,然后使用PyCall构建和测试一个包。在本例中,PyCall应该使用以前安装的Python版本,而不是它附带的默认特定于julia的Python版本miniconda 到目前为止,我的精简ci.yml如下所示: 名称:CI 关于: -推 -拉动请求 测试: 名称:Julia${{matrix.version}-${{matrix.os}-${{matrix.arch}-${github.event_na

我想设置一个Github action ci.yml文件,该文件安装Python和Julia,然后使用PyCall构建和测试一个包。在本例中,PyCall应该使用以前安装的Python版本,而不是它附带的默认特定于julia的Python版本miniconda

到目前为止,我的精简ci.yml如下所示:

名称:CI
关于:
-推
-拉动请求
测试:
名称:Julia${{matrix.version}-${{matrix.os}-${{matrix.arch}-${github.event_name}
运行于:${{matrix.os}
战略:
快速失败:错误
矩阵:
版本:
- '1.5'
-“每晚”
python:[3.7]
#python路径:[运行程序工具缓存/python/*]
操作系统:
-macOS最新版本
拱门:
-x64
步骤:
-用途:行动/checkout@v2
-名称:设置Python${{matrix.Python}
用途:操作/设置-python@v2
与:
python版本:${matrix.python}
-名称:显示Python版本
运行:python-c“导入系统;打印(系统版本)”

-名称:每次更改
ENV[“PYTHON”]
后,都需要运行
Pkg.build(“PyCall”)
来安装依赖项。这是Julia实际读取Python配置的唯一时刻,否则它就不在乎了


如果您想测试Python配置矩阵,我仍然建议您为每个配置都安装一个miniconda Python(尽管它不需要由Julia安装-它可以是Julia外部的miniconda)。使用非Conda Python运行
Pkg.build(“PyCall”)
时,各种“问题”往往会出现,您可能最终会对这些安装中的每一个都进行良好的调试。

好的,现在就运行它。将这个PYTHON ENV设置为精确的PYTHON二进制,至少在macOS和ubuntux64上是有效的

macOS/linux解决方案:

- uses: julia-actions/julia-buildpkg@v1
        env:
          PYTHON : "${{ env.pythonLocation }}/bin/python"
- uses: julia-actions/julia-buildpkg@v1
        env:
          PYTHON : "${{ env.pythonLocation }}/python.exe"
Windows解决方案:

- uses: julia-actions/julia-buildpkg@v1
        env:
          PYTHON : "${{ env.pythonLocation }}/bin/python"
- uses: julia-actions/julia-buildpkg@v1
        env:
          PYTHON : "${{ env.pythonLocation }}/python.exe"
所有人的解决方案:

- uses: julia-actions/julia-buildpkg@v1
        env:
          PYTHON : python
下面是在macOS和Ubuntu x64上传递的完整的工作ci.yml:

名称:CI
关于:
-推
-拉动请求
工作:
测试:
名称:Julia${{matrix.version}-${{matrix.os}-${{matrix.arch}-${github.event_name}
运行于:${{matrix.os}
战略:
快速失败:错误
矩阵:
版本:
- '1.5'
-“每晚”
python:[3.7]
操作系统:
-ubuntu最新版本
-macOS最新版本
拱门:
-x64
步骤:
-用途:行动/checkout@v2

-名称:使用miniconda设置PyCall目前附带Python 3.8。我还需要使用Python 3.7进行测试。因此,使用默认的miniconda实际上不是一个选项。我可以尝试使用Conda.jl(实际上我是在本地使用的),但是要使用PyCall,我仍然需要使用PyCall附带的根Python(miniconda)。当我以
ENV[“PYTHON”]
的方式进行重建时,在上面尝试过,我当前收到一个权限错误。这也可能是由于我对Github组织的权限有限造成的,我需要澄清一下。但是我可以使用Pyenv/Pipenv在本地进行PyCall,因此这里对miniconda没有严格的要求。在这里,您可以下载您想要的任何较旧的miniconda版本:您不需要通过Julia安装miniconda,但是PyCall与一些(任何)Conda一起使用效果最好,而不是普通的Python安装。希望现在一切都清楚了:)我相信你,但这并不是我真正问题的答案。特别是对于这个CI环境。不管清楚与否,现在都没有多大帮助。我只是试着用康达培养箱/装置-miniconda@v2行动,但现在它也不起作用。在考虑答复时,请提供工作解决方案的实际步骤。THXY如果您愿意,您可以在这里遵循此设置ci问题:即使将conda default设置为3.7,python版本仍然保持为2.7。