无法在linux ubuntu中设置python模块的相对路径

无法在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

为什么。。。很多关于相对路径的问题,但在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
    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”),它就可以工作了。。不知道为什么它以前不工作,但现在它是。。。