Python 在 Gitlab 上有 ModuleNotFound,但是当我 运行 在本地时没有

Python on Gitlab has ModuleNotFound, But Not When I Run Locally

以下快照显示了文件结构:

当我 运行 在 Git 实验室 CI 上时,我看到的是:

为什么在 Git实验室 运行 时会出现此错误,而在本地 运行 时却不会?

这是我的 .gitlab-ci.yml 文件。

请注意,这之前一直有效。
我最近将 win_perf_counters 设为 Git 子模块,而不是实际的子目录。 (同样,它在本地有效。)

test:
  before_script:
    - python -V
    - pip install virtualenv
    - virtualenv venv
    - .\venv\Scripts\activate.ps1
    - refreshenv
  script:
  - python -V
  - echo "******* installing pip ***********"
  - python -m pip install --upgrade pip
  - echo "******* installing locust ********"
  - python -m pip install locust
  - locust -V
  - python -m pip install multipledispatch
  - python -m pip install pycryptodome
  - python -m pip install pandas
  - python -m pip install wmi
  - python -m pip install pywin32
  - python -m pip install influxdb_client
  - set LOAD_TEST_CONF=load_test.conf
  - echo "**** about to run locust ******"
  - locust -f ./src/main.py --host $TARGET_HOST -u $USERS -t $TEST_DURATION -r $RAMPUP -s 1800 --headless --csv=./LoadTestsData_VPOS --csv-full-history --html=./LoadTestsReport_VPOS.html  --stream-file ./data/stream_jsons/streams_vpos.json --database=csv
  
    
  - Start-Sleep -s $SLEEP_TIME

  variables:
    LOAD_TEST_CONF: load_test.conf
    PYTHON_VERSION: 3.8.0
    TARGET_HOST: http://10.10.10.184:9000

  tags:
    - win2019
  artifacts:
    paths:
      - ./LoadTests*
      - public
  only:
    - schedules

  after_script:
    - ls src -r
    - mkdir .public
    - cp -r ./LoadTests* .public
    - cp metrics.csv .public -ErrorAction SilentlyContinue
    - mv .public public

当我尝试更改 Gitlab CI 文件以使用 requirements.txt 时:

您在本地环境中使用的 python 库可能与您在 gitlab 中使用的库不同。 运行 a pip list or pip freeze in your local machine 看看你有哪些版本。然后 pip install 那些在你的 gitlab 脚本中。一个好的做法是使用特定版本的 requirements.txt 或 setup.py 文件,而不是每次都拉取最新版本。

可能你正在开发的模块没有__init__.py文件,因此从外部导入时找不到。