Pytorch: [Bug Kecil] Modul Pylint E1101 'obor' tidak memiliki anggota 'from_numpy'

Dibuat pada 8 Feb 2017  ·  14Komentar  ·  Sumber: pytorch/pytorch

Sangat kecil tapi layak disebut.

Pylint tidak mengerti bahwa torch memiliki fungsi anggota from_numpy . Itu karena torch.from_numpy sebenarnya torch._C.from_numpy sejauh menyangkut Pylint.

Menurut utas stackoverflow ini numpy juga mengalami masalah ini.

Sebagai referensi, Anda dapat meminta Pylint mengabaikannya dengan membungkus panggilan "bermasalah" dengan komentar berikut.

# pylint: disable=E1101
tensor = torch.from_numpy(np_array)
# pylint: enable=E1101
todo

Komentar yang paling membantu

dihasilkan-anggota=numpy. ,obor.

Bagi mereka yang menggunakan vscode, tambahkan ke pengaturan pengguna

"python.linting.pylintArgs": [
"--hanya kesalahan",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

error-only tidak terkait dengan masalah ini tetapi berguna untuk menekan pep 8/memformat "kesalahan" jika Anda mau

Semua 14 komentar

solusinya tampaknya cukup jelek. apakah tidak ada cara untuk memberi tahu pylint untuk memfilter kesalahan tertentu?

Saya dapat menambahkan bahwa pylint (1.6.5) tidak mengambil cat , topk dan masked_select sebagai fungsi anggota juga.

Saya tidak berpikir kita akan memperbaiki ini. (Saya juga tidak tahu apakah ada cara untuk melakukannya).

Anda dapat menyembunyikan semua pesan tersebut untuk modul ini dengan mengedit baris .pylintrc yang sesuai menjadi seperti ini:

[MASTER]
extension-pkg-whitelist=numpy,torch

[TYPECHECK]
ignored-modules=numpy,torch
ignored-classes=numpy,torch

mypy tampaknya dapat mengambil anggota ini.

Alih-alih mengabaikan, Anda sekarang dapat melakukan:

[TYPECHECK]

# List of members which are set dynamically and missed by pylint inference
# system, and so shouldn't trigger E1101 when accessed. Python regular
# expressions are accepted.
generated-members=numpy.*,torch.*

dihasilkan-anggota=numpy. ,obor.

Bagi mereka yang menggunakan vscode, tambahkan ke pengaturan pengguna

"python.linting.pylintArgs": [
"--hanya kesalahan",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

error-only tidak terkait dengan masalah ini tetapi berguna untuk menekan pep 8/memformat "kesalahan" jika Anda mau

Akan lebih baik untuk mengizinkan pemeriksaan modul, juga untuk penyelesaian otomatis. Mungkin seseorang dapat mengubah from torch._C import * menjadi from torch._C import from_numpy, ... ?

Mungkin seseorang dapat mengubah from torch._C import * menjadi from torch._C import from_numpy, ... ?

Ini tampaknya cukup sederhana. Apakah kita yakin ini jalan yang harus ditempuh?
Saya pikir kami memerlukan petunjuk ketik (yang akan jauh lebih sulit untuk meyakinkan orang untuk menggunakannya).
Haruskah kita membuka masalah lain untuk membahas solusi @moi90 ?

generate-members=numpy._,torch._

Bagi mereka yang menggunakan vscode, tambahkan ke pengaturan pengguna

"python.linting.pylintArgs": [
"--hanya kesalahan",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

error-only tidak terkait dengan masalah ini tetapi berguna untuk menekan pep 8/memformat "kesalahan" jika Anda mau

Anda menyelamatkan sebagian dari hidup saya! ha ha ha ha

Pada kode VS:
Menambahkan "python.linting.enabled": false juga berhasil dalam kasus ini.

Menonaktifkan linting bersama-sama (seperti yang disarankan oleh @miranthajayatilake ) bukanlah solusi yang baik. Tampaknya pylint memiliki masalah dengan pytorch tetapi bagi saya flake8 berfungsi dengan baik.
Dalam Kode VS, seseorang dapat memilih flake8 dengan Ctrl + Shift + P -> Select linter -> flake8 .

Saya tidak berpikir kita akan memperbaiki ini. (Saya juga tidak tahu apakah ada cara untuk melakukannya).

Menutup masalah dengan "Saya tidak tahu bagaimana karenanya tidak akan" sangat nakal.

generate-members=numpy._,torch._

Bagi mereka yang menggunakan vscode, tambahkan ke pengaturan pengguna

"python.linting.pylintArgs": [
"--hanya kesalahan",
"--generated-members=numpy.* ,torch.* ,cv2.* , cv.*"
]

error-only tidak terkait dengan masalah ini tetapi berguna untuk menekan pep 8/memformat "kesalahan" jika Anda mau

Jika Anda menggunakan Coc, Anda dapat menggunakan aturan yang sama di coc-settings.json Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat