我是一位經(jīng)驗(yàn)豐富的 C# 開發(fā)人員,但最近不得不編寫一些 python 代碼。我真的很喜歡這種語言,但我正在努力將我的一些代碼拆分成模塊。為簡(jiǎn)單起見,我基本上有 2 個(gè)模塊,第一個(gè)模塊如下所示:文件1.pyfrom file2 import addOperation, volumeOperationclass utils: def add(self, num1, num2): op = addOperation(num1, num2) return op.calculate() def volume(self, length, width, height): op = volumeOperation(length, width, height) return op.calculate()def main(): util = utils() print(f"Adding 2 and 3 produces { util.add(2, 3) }") print(f"Volume of a 2x2x2 cube is { util.volume(2,2,2) }")if __name__ == '__main__': main()文件2.pyclass addOperation: def __init__(self, num1, num2): self.num1 = num1 self.num2 = num2 def calculate(self): return self.num1 + self.num2class volumeOperation: def __init__(self, length, width, height): self.width = width self.height = height self.length = length def calculate(self): return self.width * self.height * self.length_init__.pyimport file1, file2這 3 個(gè)文件位于一個(gè)名為“mylibrary”的文件夾中,當(dāng)我運(yùn)行“python .\file1.py”時(shí),一切都按預(yù)期工作。然后使用這個(gè) setup.py 將該模塊構(gòu)建到一個(gè)輪子中:import setuptoolsprint(setuptools.find_packages())setuptools.setup( name="mylibrary", version="1.0.0", author="me", author_email="me@me.com", packages=setuptools.find_packages(), classifiers=[ "Programming Language :: Python :: 3", "Operating System :: OS Independent" ],)然后使用“python -m pip install --user mylibrary-1.0.0-py3-none-any.whl”安裝生成的輪子,這似乎工作得很好。我的第二個(gè)模塊是以下文件“consumer.py”:import mylibrary.file1if __name__ == '__main__': util = mylibrary.file1.utils() print(f"Adding 2 and 3 produces { util.add(2, 3) }") print(f"Volume of a 2x2x2 cube is { util.volume(2,2,2) }")當(dāng)我嘗試運(yùn)行“python .\consumer.py”(我在使用 python 3.7 的 Windows 上,順便說一句)我得到“ModuleNotFoundError:沒有名為‘file2’的模塊”。我嘗試了不同的導(dǎo)入方式,我嘗試__init__.py在 mylibrary 模塊中使用空值,并且我閱讀了其他一些至少有類似問題的 stackoverflow 問題,但我無法讓它工作。我應(yīng)該修改什么才能使其工作?
添加回答
舉報(bào)
0/150
提交
取消