Python 如何组织也称为脚本的模块子文件夹?
我有一个脚本Python 如何组织也称为脚本的模块子文件夹?,python,python-3.x,Python,Python 3.x,我有一个脚本hello.py,它可以被main.py用作模块,也可以从命令行调用。它本身导入同一目录中的模块helper.py: ├── lib │ ├── hello.py │ ├── helper.py │ ├── __init__.py ├── main.py 这些文件的内容是 $ cat main.py import lib.hello lib.hello.sayhi() ------------------------------------ $ cat lib/h
hello.py
,它可以被main.py
用作模块,也可以从命令行调用。它本身导入同一目录中的模块helper.py
:
├── lib
│ ├── hello.py
│ ├── helper.py
│ ├── __init__.py
├── main.py
这些文件的内容是
$ cat main.py
import lib.hello
lib.hello.sayhi()
------------------------------------
$ cat lib/hello.py
import helper
def sayhi():
print("bonjour")
print(helper.something())
if __name__ == "__main__":
print("hello")
------------------------------------
$ cat lib/helper.py
def something():
print("something")
我遇到的问题是,从命令行调用hello可以正常工作(正确导入helper.py
,因为它与hello.py
)处于相同的级别),但在运行main.py时
$ python3 main.py
Traceback (most recent call last):
File "main.py", line 1, in <module>
import lib.hello
File "/tmp/lib/hello.py", line 1, in <module>
import helper
ImportError: No module named 'helper'
我该如何摆脱这一困境?
我怀疑来自“”的信息可能有用,但我不明白如何将它们用于解决我的问题。您应该在hello.py中设置
import lib.helper
在调用do something方法时:
lib.helper.something()
这就解决了您的问题,您可以毫无问题地调用main或hello在Python 2中似乎对我有用。我能帮您吗?
lib.helper.something()