Rom*_*ans 8 pylint python-3.x visual-studio-code
我最近开始用 Python 编程,我决定用 Python 编写一些 Delphi 函数。我决定创建一个单独的 Python 模块来保存我的函数。
现在,我尝试导入它,但在 Visual Studio Code 中出现此错误:
unable to import 'functions' pylint(import error) [5, 1]
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
unable to import 'functions' pylint(import error) [5, 1]
Run Code Online (Sandbox Code Playgroud)
这是一张图片:
Gin*_*pin 12
鉴于您的文件/文件夹结构:
??? Functions
? ??? functions.py
??? <main app folder>
? ??? app.py
Run Code Online (Sandbox Code Playgroud)
尽管您的导入在添加path/to/Functions到 后可能会正确运行sys.path,但 Pylint 会向您发出警告,因为这不是声明导入的推荐方式,尤其是当您在应用程序包/文件夹之外导入模块时。
来自PEP8 导入样式指南:
建议使用绝对导入,因为如果导入系统配置不正确(例如当包内的目录结束时
sys.path),它们通常更具可读性并且往往表现更好(或至少给出更好的错误消息):Run Code Online (Sandbox Code Playgroud)import mypkg.sibling from mypkg import sibling from mypkg.sibling import example
推荐的解决方案是通过在其下添加文件来设置Functions为包__init__.py:
??? parent
? ??? Functions
? ??? __init__.py
? ??? functions.py
Run Code Online (Sandbox Code Playgroud)
然后导入您的功能,如以下之一:
sys.path.append("/path/to/parent")
# option 1
from Functions import functions
functions.copy()
functions.delete()
# option2
from Functions.functions import copy, delete
copy()
delete()
Run Code Online (Sandbox Code Playgroud)
这两个选项都应该正确运行并满足 PyLint。
现在,如果您真的想执行像 那样的非绝对导入from functions import func,并让 PyLint 接受,我建议您重命名functions.py为其他名称。这是因为,在某些不区分大小写的系统上,导入Functions和functions可能会被视为同一个模块。当您告诉 PyLint 进行查看时/path/to/Functions(我稍后会展示),它可能无法区分copy和delete是否属于Functions或functions,并且它可能仍会显示导入错误。
所以,你需要做的是重命名functions.py(例如filefuncs.py):
import mypkg.sibling
from mypkg import sibling
from mypkg.sibling import example
Run Code Online (Sandbox Code Playgroud)
然后在您的 VS Code 工作区中,将其添加到您的.vscode/settings.json文件中,以告诉 PyLint 在哪里查找filefuncs模块:
??? parent
? ??? Functions
? ??? __init__.py
? ??? functions.py
Run Code Online (Sandbox Code Playgroud)
然后你现在可以像你的原始代码一样导入它,但没有 PyLint 错误:
sys.path.append("/path/to/Functions")
from filefuncs import copy, delete
copy()
delete()
Run Code Online (Sandbox Code Playgroud)
第二种方法可以满足您的需求,但它包含一些 PyLint 工作的变通方法。如果您可以使用我在开始时解释的推荐方式,请改用它。
| 归档时间: |
|
| 查看次数: |
27672 次 |
| 最近记录: |