【问题标题】:PyLint Doesn't work on GitLab (Python 3.X)PyLint 不适用于 GitLab (Python 3.X)
【发布时间】:2020-11-11 10:47:18
【问题描述】:

我在 gitlab 上遇到了 Pylint 的问题。由于某种原因,它在分析代码的过程中崩溃了。 但没有对我说什么,只是崩溃..

这里有一些日志:

core/db/sql/pgsql/__init__.py:162:8: E1101: Instance of 'Session' has no 'close' member (no-member)
/core/db/sql/pgsql/__init__.py:165:4: C0116: Missing function or method docstring (missing-function-docstring)
/core/db/sql/pgsql/__init__.py:166:8: E1101: Instance of 'Session' has no 'commit' member (no-member)
/core/db/sql/pgsql/__init__.py:168:4: C0116: Missing function or method docstring (missing-function-docstring)
/core/db/sql/pgsql/__init__.py:169:8: E1101: Instance of 'Session' has no 'rollback' member (no-member)
/core/db/sql/pgsql/__init__.py:171:4: C0116: Missing function or method docstring (missing-function-docstring)
/core/db/sql/pgsql/__init__.py:174:4: C0116: Missing function or method docstring (missing-function-docstring)/bin/bash: line 98:    43 Segmentation fault      (core dumped) pylint /
         44 Done                    | tee ./pylint/pylint.log
The following messages were raised:
   - fatal message issued
   - error message issued
   - refactor message issued
 Fatal messages detected.  Failing...

Running after_script
00:02
196
Uploading artifacts for failed job
00:02
198 ERROR: Job failed: exit code 1

这里是 .gitlab-cy.yml 配置文件:

image: "python:3.8.5"

# Change pip's cache directory to be inside the project directory since we can
# only cache local items.
variables:
  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache"


cache:
  paths:
- .cache/pip
- venv/

before_script:
  - python --version
  - pip install virtualenv
  - virtualenv venv
  - source venv/bin/activate
  - pip install -r requirements.txt

stages:
  - Static Analysis
  - Test

flake8:
  stage: Static Analysis
  script:
- flake8 project/

pylint:
  stage: Static Analysis
  script:
- mkdir ./pylint
- pylint project/ | tee ./pylint/pylint.log || pylint-exit $?
- PYLINT_SCORE=$(sed -n 's/^Your code has been rated at \([-0-9.]*\)\/.*/\1/p' ./pylint/pylint.log)
- anybadge --label=Pylint --file=pylint/pylint.svg --value=$PYLINT_SCORE 2=red 4=orange 8=yellow 10=green
- echo "Pylint score is $PYLINT_SCORE"
  artifacts:
paths:
  - ./pylint/

coverage:
  stage: Test
  script:
- coverage erase
- $(coverage run -m unittest discover -s tests | tee cov.log || exit 0)
- coverage report -m
  coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
  artifacts:
paths:
  - ./pylint/
when: always

有了这个错误代码,我在网上什么也没找到.. 我在 gitlab 上还有其他项目,配置相同,运行没有任何问题。

有人看过吗?

谢谢!!

【问题讨论】:

    标签: python-3.x gitlab-ci pylint pylintrc


    【解决方案1】:

    我看不出你是如何执行 pylint 的。请提供您的gitlab-ci.yml 文件。但是我遇到了非常相似的问题,我通过添加 pylint-exit 库来解决它:

    pylint --disable=W0611,C0411,C0301 tests > ./pylint/tests.log || pylint-exit $? 
    

    【讨论】:

    • 嗨,我已经编辑了问题并插入了 yml 代码。由于某些原因,当我从请求中取出 opencv 库时,它可以工作。我正在使用这个版本的 opencv (opencv-python==4.4.0.44 opencv-contrib-python==4.4.0.44)
    • 首先尝试在 Gitlab CI/CD 进程中不使用 venv 运行它。在您的开发笔记本上本地我也这样做,但在 Gitlab 守护进程内部,没有必要隔离环境。另请提供 requirements.txt 文件的内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多