Che*_*ffs 11 python python-module
在 python 中导入模块时遇到一些问题。这是我的文件夹结构
my_app/
app.py
__init__.py (I want to import a function from this file)
folder1/
__init.py
method1.py
folder2/
__init__.py
method.py
Run Code Online (Sandbox Code Playgroud)
在我的根中,__init__.py我有这个功能
def want_to_be_run_elsewhere():
pass
Run Code Online (Sandbox Code Playgroud)
在我的 app.py 中,我想导入这个函数并在我启动我的应用程序时运行它,但我不确定如何去做。
from my_app import want_to_be_run_elsewhere
Run Code Online (Sandbox Code Playgroud)
这会抛出一个名为 my_app 的无模块
据我所知,我拥有所有必要的__init__.py文件,所以它可能与 sys.path 相关?
我在这里阅读了一些类似的主题,但我无法解决这个问题。
通常你会像这样导入
from . import want_to_be_run_elsewhere
Run Code Online (Sandbox Code Playgroud)
这在这里不起作用,因为您正在调用app.py. 如果你 import my_app.app,它是模块的一部分。如果你叫它不是。从正在使用的模块导入.将不起作用。
你可以移动 app.py到 之外my_app,将其从模块中删除并再次使导入工作。
或者你可以使用
from __init__ import want_to_be_run_elsewhere
Run Code Online (Sandbox Code Playgroud)
在 app.py
我相信
from my_app import want_to_be_run_elsewhere
Run Code Online (Sandbox Code Playgroud)
只有当你实际上有pip install -e my_app/. 那么它也应该工作。
| 归档时间: |
|
| 查看次数: |
12876 次 |
| 最近记录: |