Using Pylint in Ipython (Jupyter-Notebook)

前端 未结 3 1697
旧巷少年郎
旧巷少年郎 2020-12-30 03:25

I want to run Pylint or any equivalent while using Jupyter-Notebook. Is there a way to install and run Pylint this way?

相关标签:
3条回答
  • 2020-12-30 03:56

    To answer the question more specifically in regards to pylint. One relatively simple way to achieve that in a development / ci environment (i.e. command line) is to convert the notebook to Python and then run the linting.

    Let's assume you have notebooks in the ./notebooks folder and you have the jupyter and pylint command in the path, you could run the following:

    jupyter nbconvert \
        --to=script \
        --output-dir=/tmp/converted-notebooks/ \
        ./notebooks/*.ipynb
    pylint /tmp/converted-notebooks/*.py
    

    You might want to configure pylint, as the notebook style is slightly different to a general Python module.

    Some rules that you might want to disable:

    • pointless-statement
    • expression-not-assigned
    • trailing-newlines
    • wrong-import-position
    • redefined-outer-name
    • invalid-name

    It also appears that the maximum number of characters in a cell (before horizontal scrolling) is 116 but that might depend on other factors.

    (These options can for example be configured using the --max-line-length and --disable pylint arguments, or via the .pylintrc file)

    0 讨论(0)
  • 2020-12-30 04:09

    pycodestyle is an equivalent of pylint for Jupyter Notebook which is able to check your code against the PEP8 style guide.

    First, you need to install the pycodestyle in jupyter notebook by typing this command,

    !pip install pycodestyle pycodestyle_magic
    

    Run this command in a cell of jupyter notebook. After successful installation, you have to load the magic in a Jupyter Notebook cell like this,

    %load_ext pycodestyle_magic
    

    Then, you have to use pycodestyle in a cell in which you want to investigate your code against PEP8 standards.

    Below are some examples for more and clear understanding,

    %%pycodestyle
    a=1
    

    Output: pycodestyle will give you this message,

    2:2: E225 missing whitespace around operator
    

    Another example,

    %%pycodestyle
    def square_of_number(
         num1, num2, num3, 
         num4):
        return num1**2, num2**2, num3**2, num4**2
    

    Output:

    2:1: E302 expected 2 blank lines, found 0
    3:23: W291 trailing whitespace
    
    0 讨论(0)
  • 2020-12-30 04:10

    No, you can not introduce pylint into jupyter notebook.

    If you want to check your code style, you need jupyter notebook's extensions.

    Possible this one:

    https://github.com/ipython-contrib/jupyter_contrib_nbextensions/tree/master/src/jupyter_contrib_nbextensions/nbextensions/code_prettify

    0 讨论(0)
提交回复
热议问题