要包含在 Gitlab Yaml 文件中的外部模块

问题描述 投票:0回答:0

我有三个 .pyx 文件,one.pyxtwo.pyxmain.pyx。我 cythonize one.pyx,得到 one.pyd,然后 cimport onetwo.pyx。然后我 cythonize two.pyx,然后 cimport onecimport twomain.pyx。这样,我就可以访问 one.pyxtwo.pyx.

中的函数

然后我尝试 cython main.pyx 得到 main.c,然后使用 gcc 编译 main.c,得到 main.exe。当我在本地运行这个文件时,它起作用了。但是,当我尝试使用 .gitlab-ci.yml 时,它失败并显示 main.pyx 文件中没有模块一,即使我尝试运行 main.exe.

--

one.pyx

function()

--

cythonize -i one.pyx

--

two.pyx

cimport one

one.function()
function2()

--

cythonize -i two.pyx

--

main.pyx

cimport one
cimport two

one.function()
two.function2()

--

cython main.pyx --embed

--

gcc -I/path/to/includes main.c -o main

--

主要

(工作正常)

--

.gitlab-ci.yml

stages:

- build
- test

image: python:3.9.16

before_script:

- apt-get clean
- apt-get --allow-unauthenticated update
- apt-get upgrade
- apt-get install -y gcc
- apt-get update
- apt-get install libexpat1-dev
- apt search '^python\[0-9\]\*-dev'
- python3 --version

build-job:  
stage: build
script:
- echo "Compiling the code..."
- gcc -v -DSIZEOF_VOID=8 -DMS_WIN64 main.c -I /path/to/includes-lpython3.9 -o main
- echo "Compile complete."
artifacts:
paths:
- main

test-test-job:
stage: test
script:
- echo "Running tests."
- ./main
- echo "Code coverage is 90%"

--

测试作业的错误信息:

Traceback (most recent call last):
File "main.pyx", line 1, in init main
cimport two
ModuleNotFoundError: No module named 'one'

我不确定如何解决这个问题,因为我是 Gitlab Yaml 文件和 cython 的新手。我试过更改导入语句,但我认为它无法识别这两个 .pyd 文件。

yaml gitlab-ci importerror cicd cythonize
© www.soinside.com 2019 - 2024. All rights reserved.