Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python和pylint中向sys.path添加路径_Python_Pylint - Fatal编程技术网

在python和pylint中向sys.path添加路径

在python和pylint中向sys.path添加路径,python,pylint,Python,Pylint,所以。我知道这个问题似乎被问得要死,但没有一个答案能说明我想做什么 我在另一个目录中有一个库,我想将它包含在我运行的一组其他项目中。我不希望每次运行python时都添加该库 因此,我在python代码中一直在做这件事: import sys sys.path.append("/tmp/demo/src/my-lib") import MyClass 这很有效。但是,现在我发现并爱上了派林,它抱怨说 E: 7, 0: Unable to import 'MyClass' (import-err

所以。我知道这个问题似乎被问得要死,但没有一个答案能说明我想做什么

我在另一个目录中有一个库,我想将它包含在我运行的一组其他项目中。我不希望每次运行python时都添加该库

因此,我在python代码中一直在做这件事:

import sys
sys.path.append("/tmp/demo/src/my-lib")
import MyClass
这很有效。但是,现在我发现并爱上了派林,它抱怨说

E:  7, 0: Unable to import 'MyClass' (import-error)
C:  7, 0: Import "import MyClass" should be placed at the top of the module (wrong-import-position)
我知道我可以用一个指令禁用导入错误和错误的导入位置(或者把它放进.pylintrc…),但我不希望这样。我想知道向sys.path添加路径的“正确”方法,该路径不是我所有项目的全局路径,而是使用特定库的项目子集的路径

这可能吗?

您可以使用pylint的“init hook”来实现。看看这个答案:

以及:

我们可能不会自动支持这一点。但现在我们确实支持手动添加到path,尽管使用更麻烦的方式,通过`--init hook=“import sys;sys.path.append(…)”


这是一篇老文章,但在搜索了一段时间后,我真的找不到解决我问题的简单方法,所以也许这个解决方法对其他人也有用。最近,我在Visual Studio代码中使用python linter时遇到了类似的问题:每次我在VSC中保存python文件时,linter都会将sys.import放在导入代码后面,因此无法加载模块

我知道可以通过更改PYTHONPATH等和linter配置文件来解决这个问题,但在我的情况下,我无法更改所有这些,因为该模块是另一个应用程序的一部分

作为一种解决方法,我通过以下操作解决了lint错误:

导入系统 如果1==1: sys.path.insert(0,os.path.join(os.path.dirname(_文件__),“.”,“lib”)) 导入mylib 这使linter停止抱怨,VSC格式化程序停止重新安排我的导入规则