在linux-ubuntu中不能设置python模块的相对路径

2024-06-26 14:17:50 发布

您现在位置: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
    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()

和错误:

 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'

我甚至将这个主类添加到我的模块中,因为我在一个示例中发现了它。。你知道吗


Tags: brimporthomeinputreturnifmaindef
2条回答

将脚本添加到PYTHONPATH ENV变量中的一个目录,或将相应的目录添加到$PYTHONPATH。 参考-https://leemendelowitz.github.io/blog/how-does-python-find-packages.html

第二个模块中的函数是在主函数中定义的,而不是在模块中定义的。重新插入模块,如下所示:

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()

另外,在unix中,路径使用正斜杠。你知道吗

相关问题 更多 >