无法在linux ubuntu中设置python模块的相对路径
为什么。。。很多关于相对路径的问题,但在ubuntu中没有。我认为ubuntu是我的问题,所以请帮助我。。我尝试了每一种路径组合,但不知道如何使其工作。 程序正在将一个模块导入主窗口 这两者都是无法在linux ubuntu中设置python模块的相对路径,python,Python,为什么。。。很多关于相对路径的问题,但在ubuntu中没有。我认为ubuntu是我的问题,所以请帮助我。。我尝试了每一种路径组合,但不知道如何使其工作。 程序正在将一个模块导入主窗口 这两者都是 import sys sys.path.append("\home\zoran\Documents\Moduli") import brojeviModul def vrati(a, b, c): global br br = 10 a += br b += br
import sys
sys.path.append("\home\zoran\Documents\Moduli")
import brojeviModul
def vrati(a, b, c):
global br
br = 10
a += br
b += br
c += br
return min(a , b, c)
def main():
prviBroj = int(input("Unesite prvi broj: "))
drugiBroj = int(input("Unesite drugi broj: "))
treciBroj = int(input("Unesite treci broj: "))
genPrva = brojeviModul.generirajBroj(prviBroj)
genDruga = brojeviModul.generirajBroj(drugiBroj)
genTreca = brojeviModul.generirajBroj(treciBroj)
vratiPrvi = vratiZbroj(genPrva)
vratiDrugi = vratiZbroj(genDruga)
vratiTreci = vratiZbroj(genTreca)
minimalnaVrijednost = vrati(vratiPrvi, vratiDrugi, vratiTreci)
print("Najmanja vracena vrijednostje{}.".format(minimalnaVrijednost))
if __name__ == "__main__":
main()
第二
def main():
global broj
broj = 100
veciOdSto = int(input("Unesite troznamenkasti broj veći od 100:"))
def generirajBroj(veciOdSto):
if veciOdSto < 101 or veciOdSto > 999:
print("Broj ne valja")
return 150
else:
import random
genBroj = random.randint(broj, veciOdSto)
print("Generiran je slučajni broj: {}".format(genBroj))
return genBroj
def vratiZbroj(veciOdSto):
if veciOdSto > 100 and veciOdSto < 999:
prvaZnamenka = veciOdSto % 10
drugaZnamenka = (veciOdSto // 10) % 10
trecaZnamenka = veciOdSto //100
return prvaZnamenka + drugaZnamenka + trecaZnamenka
if __name__ == "__main__":
main()
def main():
全球兄弟会
broj=100
veciOdSto=int(输入(“Unesite troznamenkasti broj veći od 100:”)
def generirajBroj(veciOdSto):
如果veciOdSto<101或veciOdSto>999:
印刷品(“Broj ne valja”)
返回150
其他:
随机输入
genBroj=random.randint(broj,veciOdSto)
打印(“generian je slučajni broj:{}”。格式(genBroj))
返回genBroj
def vratiZbroj(veciOdSto):
如果veciOdSto>100且veciOdSto<999:
prvaznameka=veciOdSto%10
drugaZnamenka=(veciOdSto//10)%10
Trecaznameka=veciOdSto//100
返回prvaZnamenka+drugaZnamenka+trecaZnamenka
如果名称=“\uuuuu main\uuuuuuuu”:
main()
和错误:
Traceback (most recent call last):
File "/home/zoran/Desktop/glavni.py", line 34, in <module>
main()
File "/home/zoran/Desktop/glavni.py", line 21, in main
genPrva = brojeviModul.generirajBroj(prviBroj)
AttributeError: module 'brojeviModul' has no attribute 'generirajBroj'
回溯(最近一次呼叫最后一次):
文件“/home/zoran/Desktop/glavni.py”,第34行,在
main()
文件“/home/zoran/Desktop/glavni.py”,主文件第21行
genPrva=brojeviModul.generirajBroj(prviBroj)
AttributeError:模块“brojeviModul”没有属性“generirajBroj”
我甚至将这个主类添加到我的模块中,因为我在一个示例中找到了它。第二个模块中的函数是在主函数中定义的,而不是在模块中定义的。重新插入模块,如下所示:
def main():
global broj
broj = 100
veciOdSto = int(input("Unesite troznamenkasti broj veći od 100:"))
def generirajBroj(veciOdSto):
if veciOdSto < 101 or veciOdSto > 999:
print("Broj ne valja")
return 150
else:
import random
genBroj = random.randint(broj, veciOdSto)
print("Generiran je slučajni broj: {}".format(genBroj))
return genBroj
def vratiZbroj(veciOdSto):
if veciOdSto > 100 and veciOdSto < 999:
prvaZnamenka = veciOdSto % 10
drugaZnamenka = (veciOdSto // 10) % 10
trecaZnamenka = veciOdSto //100
return prvaZnamenka + drugaZnamenka + trecaZnamenka
if __name__ == "__main__":
main()
def main():
全球兄弟会
broj=100
veciOdSto=int(输入(“Unesite troznamenkasti broj veći od 100:”)
def generirajBroj(veciOdSto):
如果veciOdSto<101或veciOdSto>999:
印刷品(“Broj ne valja”)
返回150
其他:
随机输入
genBroj=random.randint(broj,veciOdSto)
打印(“generian je slučajni broj:{}”。格式(genBroj))
返回genBroj
def vratiZbroj(veciOdSto):
如果veciOdSto>100且veciOdSto<999:
prvaznameka=veciOdSto%10
drugaZnamenka=(veciOdSto//10)%10
Trecaznameka=veciOdSto//100
返回prvaZnamenka+drugaZnamenka+trecaZnamenka
如果名称=“\uuuuu main\uuuuuuuu”:
main()
此外,路径在unix中使用正向斜杠。将脚本添加到PYTHONPATH ENV变量中的一个目录,或将相应的目录添加到$PYTHONPATH。
Ref-请修复缩进,此代码在当前状态下不可用。缩进已关闭,因此很难理解。但是我猜
generirajBroj
是main()
中的一个嵌套函数。我觉得缩进对这个问题很关键。但是,我很确定这个问题与相对/绝对路径无关。我的道歉这真的是没有必要的,因为脚本清楚地发现(或者至少是a)模块已经编辑了路径,但仍然不工作。现在我在这里编辑了缩进,所以请重新连接我的代码。错误实际上很清楚:AttributeError:module'brojeviModul'没有属性'generirajBroj'brojeviModul没有调用generirajBroj
的函数。brojevModul
中有什么?brojeviModul是.py文件(模块)的名称@ZoranBajcer抱歉,这是漫长的一天。编辑了原始答案我在桌面上设置了我的模块和主模块,并将路径设置为(“brojeviModul.py”),它就可以工作了。。不知道为什么它以前不工作,但现在它是。。。