Pythonを使用してWindows用のソフトウェアを開発しています。私はLinuxで開発しており、Pylintを使用してコードをチェックしています。私はエラーを取り除くことができません:
F| Unable to import '_winreg'
これは明らかです-Pythonにはこのモジュールがありません。
それで、このエラーを無視するには、.pylintrcに何を入れなければなりませんか?
よろしくお願いします、オズ
編集:
ドキュメントによると:
:F0401: *Unable to import %r*
Used when pylint has been unable to import a module.
今、私はそれを使用する方法を見つける必要があります...
部分的な解決策:
pylint --disable=F0401 <filename>
私はまだ.pylintrcを介して行う方法を探しています。
モジュールを本当に無視したい人のために、私はここにpylintの小さなパッチを置いています: '/ pylint/checkers/imports.py'に
262 def get_imported_module(self, modnode, importnode, modname):
+263 import sys
+264 ignoreModules = ['_winreg', 'your', 'bogus','module','name']
265 try:
+266 if sys.platform =='linux2' and modname not in ignoreModules:
267 return importnode.do_import_module(modname)
268 except astng.InferenceError, ex:
269 if str(ex) != modname:
270 args = '%r (%s)' % (modname, ex)
この小さなハックは、すべての警告を無視するよりもうまく機能します。できれば、時間があれば、.pylintrc
ファイル。
次のコードでこれにも遭遇します:
8: if os.name == 'nt':
9: import msvcrt
10: else:
11: import fcntl
pylint
ビルドに失敗しました このエラー:
E: 9, 4: Unable to import 'msvcrt' (import-error)
solution は、pylint
0.10以降で使用できます。
9: import msvcrt # pylint: disable=import-error
Pylintが取得できない可能性のある特別なモジュールがある職場で採用されているのを見たソリューション(Pythonが埋め込まれ、この特別なモジュールはメインの実行可能ファイル内にあり、pylintは通常のPythonインストール)は、.pyファイルを作成し、pylintの実行時にpythonパスに配置することでモックアップします( PyLint "Unable to import"エラーを参照) --PYTHONPATHの設定方法? )。
したがって、空の_winreg.py
を含む「pylint-fakes」ディレクトリがある可能性があります(または、インポートされた名前をチェックする必要がある場合は、空ではなく偽の変数を使用します)。
質問はかなり古いですが、今のところ、次のような.pylintrc
のモジュールは無視できます。
ignored-modules=module1,module2,...
サードパーティのCIツールでアンインストール可能なモジュールのチェックを抑制するために使用しましたが、問題なく動作します。
[編集:pylintチェックファイルの変更が要求されているため、これは望ましい解決策ではありませんが、コード自体を変更できる場合に備えて残しておきます。コメントの後にはできません]:
Importステートメントの周りにtry/exceptブロックを配置します。
またはさらに良い。何かのようなもの:
CONFIG = 'Unix'
if CONFIG == 'Unix':
import UnixLib
Elif CONFIG == 'Win':
import WinLib
else:
assert False