在过去的几周里,我开始学习Python (来自Python Institute)。我是编程新手,所以我可能会漏掉一些东西。
我所处的步骤是,Python文件与模块文件位于不同的目录中,并尝试通过将其路径添加到sys.path来导入它。这些文件的位置如下:Files Directory
不过,我不认为这与模块的代码相关:
# module.py
#!/usr/bin/env python3
""" module.py - an example of Python module """
__counter = 0
def suml(list):
global __counter
__counter += 1
sum = 0
for el in list:
sum += el
return sum
def prodl(list):
global __counter
__counter += 1
prod = 1
for el in list:
prod *= el
return prod
if __name__ == "__main__":
print("I prefer to be a module, but I can do some tests for you")
l = [i+1 for i in range(5)]
print(suml(l) == 15)
print(prodl(l) == 120)下面是代码应该能运行的代码:
# main.py
from sys import path
path.append('..\\modules')
import module
zeroes = [0 for i in range(5)] ones = [1 for i in range(5)] print(module.suml(zeroes)) print(module.prodl(ones))他们建议附加一个相对路径。我在Win 10家庭版上使用Visual Studio代码。
当我在没有调试代码的情况下运行代码时,会成功导入模块。当我在终端中运行该文件时,我得到一个回溯错误。我还没有真正读完如何使用Visual Studio (到目前为止,我只是按照章节),所以我可能遗漏了一些东西。
有没有人能解释一下我上面使用的代码是否正确,以及为什么我在终端中运行文件时会出现错误?
干杯。
发布于 2020-10-05 11:12:18
当您的调试配置launch.json文件(位于您的工作区.vscode目录中)中有一个相对路径时,就会发生此错误。
在下面的示例中,程序属性在工作区(项目文件夹)的根目录下具有app.js的相对路径。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "./app.js"
}
]
}修复方法是使用绝对路径,或者更好地使用${workspaceFolder}变量,该变量将解析为项目文件夹的绝对路径。
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js"
}
]
}通过使用${workspaceFolder}变量,如果项目被移动或与其他开发人员共享,则不需要更新绝对路径。
https://stackoverflow.com/questions/64201955
复制相似问题